Ningx 서비스 기반

8510 단어
1. Nginx 프로필;
요약: Nginx 는 러시아 가 개발 한 고성능 HTTP 서버 와 역방향 프 록 시 서버 로 IMAP / POP 3 / SMTP 프 록 시 서 비 스 를 지원 하 며 성능 장점 이 현저 하 다. 홈 페이지 에 서 는 한 대의 nginx 서버 가 50000 병행 을 처리 할 수 있다 고 말 했다.특징: 고성능, 안정, 하드웨어 자원 소모 가 적 고 큰 병행 을 처리 할 수 있 으 며 주로 정적 분석, 동정 페이지 의 분리 에 사용 된다.장점: 1. 웹 서버 로 서 nginx 는 정적 파일, 색인 파일 과 자동 색인 효율 이 매우 높 습 니 다.2. 프 록 시 서버 로 서 Nginx 는 캐 시 없 는 역방향 프 록 시 가속 을 실현 하여 사이트 운행 속 도 를 높 일 수 있 습 니 다.3. 부하 균형 서버 로 서 Nginx 는 내부 에서 Rails 와 PHP 를 직접 지원 할 수도 있 고 HTTP 프 록 시 서버 를 지원 하여 대외 적 으로 서 비 스 를 할 수도 있다.간단 한 용 착 과 알고리즘 을 이용 하여 부하 균형 을 이 루 는 것 도 지원 합 니 다.
nginx 프로그램 설치
(1) 지원 소프트웨어 인 Nginx 를 설치 하고 실행 하려 면 pcre, zlib 등 패키지 의 지원 이 필요 합 니 다.yum install gcc gcc-c++ pcre-devel zlib-devel (2) 운영 사용자 그룹 Nginx 서비스 프로그램 을 만 들 고 기본적으로 nobody 로 실행 합 니 다. 컨트롤 러 접근 권한 을 더욱 정확하게 하고 유연성, 안전, 위험 을 낮 출 수 있 도록 전문 적 인 사용자 계 정 을 만 드 는 것 을 권장 합 니 다.useradd -M -s /sbin/nologin nginx (3) Nginx 컴 파일 설치
root@localhost opt]# cd nginx-1.12.0/
[root@localhost nginx-1.12.0]#./configure \
--prefix=/usr/local/nginx \  #    
 --user=nginx \                                  #     Nginx
 --group=nginx \                             #    Nginx
 --with-http_stub_status_module     #         ,            
 [root@localhost nginx-1.12.0]# make && make install

(4) 최적화 경 로 는 관 리 를 편리 하 게 하기 위해 메 인 프로그램 ngin 에서 링크 파일 을 만 들 수 있 고 nginx 명령 으로 nginx 메 인 프로그램 을 직접 호출 할 수 있 습 니 다.ln -s /usr/local/nginx/sbin/nginx /usr/sbin/ (5) 설정 검사
[root@localhost ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

(6) Nginx 시작 및 정지
[root@localhost ~]# nginx    
[root@localhost ~]# killall -s HUP nginx  #    
[root@localhost ~]# killall -s QUIT nginx #    

(6) Nginx 서비스 스 크 립 트 를 사용 하면 Nginx 서비스 시작, 정지, 리 셋 등 조작 이 더욱 편리 하고 chkconfig 와 service 도 구 를 사용 하여 관리 할 수 있 습 니 다.
[root@localhost ~]# vim /etc/init.d/nginx 
#!/bin/bash
#chkconfig: - 99 20
 description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
        $PROG
;;
stop)
        kill -s QUIT $(cat $PIDF)
;;
reload)
        $0 stop
        $0 start
;;
restart)
        kill -s HUP $(cat $PIDF)
;;
*)
        echo "Usage:$0 {start|stop|restart|reload}"
;;
esac
exit 0
[root@localhost ~]# chmod +x /etc/init.d/nginx
[root@localhost ~]# chkconfig --add nginx

설정 파일 nginx. conf
1. 전역 설정
#user  nobody;  #    
worker_processes  1; #      

#error_log  logs/error.log;   #    
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid; #PID     

2. I / O 이벤트 설정 은 "event {}" 경계 표 시 를 사용 하여 Nginx 프로 세 스 의 I / O 응답 모델 을 지정 하고 프로 세 스 마다 연결 수 를 설정 합 니 다.
events {
    worker_connections  1024;   #      4096   
}

3. HTTP 설정 은 접근 로그, HTTP 포트, 페이지 디 렉 터 리, 기본 문자 집합, 연결 유지, 가상 웹 호스트, PHP 분석 등 일련의 설정 을 포함 하여 "http {}" 정의 표 시 를 사용 합 니 다.대부분의 설정 문 구 는 'server {}' 태그 에 포함 되 어 있 습 니 다.
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;#      
        #access_log  logs/access.log  main;

    #gzip  on;

    server { #Web       
        listen 192.168.242.220:80;#      
        server_name  192.168.242.220:80;#    
        charset utf-8;#        
        access_log  logs/www.kgc.com.host.access.log;#      

        location / {  #     
            root /var/www/html/kgc; #        
            index  index.html index.htm;#    (   )
        }

        error_page   500 502 503 504  /50x.html; #         
        location = /50x.html {   #      
            root   html;
        }
    }

3. 접근 상태 통계 Nginx 에 HTTP 내장STUB_STATUS 상태 통계 모듈 은 현재 웹 접근 상황 을 피드백 하 는 데 사 용 됩 니 다. 컴 파일 수 를 설정 할 때 어떻게 추가 할 수 있 습 니까 - with - httpstub_status_mdule 에서 이 모듈 지원 을 시작 합 니 다.
nginx 의 상태 통계 기능 을 사용 하려 면 내장 모듈 을 사용 하 는 것 외 에 nginx. conf 설정 파일 도 수정 해 야 합 니 다.접근 위 치 를 지정 하고 stub 추가status
location / {
            stub_status on;#        
            access_log off;#          
            root /var/www/html/kgc;
            index  index.html index.htm;
        }

Nginx 접근 제어
권한 을 위 임 받 은 접근 제어 절차 1. htpasswd 를 사용 하여 사용자 인증 파일 을 생 성 합 니 다. 이 명령 이 없 으 면 yun 으로 httpd - tools 패 키 지 를 설치 할 수 있 습 니 다.

[root@localhost ~]#htpasswd /usr/local/nginx/passwd.db jiji # /usr/local/nginx    passwd.db  ,    jiji,      。 passwd.db           

2. 암호 파일 을 수정 할 수 있 는 권한 은 400 이 고 소유 자 를 nginx 로 변경 합 니 다.
[root@localhost ~]# chmod 400 /usr/local/nginx/passwd.db 
[root@localhost ~]# chown nginx /usr/local/nginx/passwd.db

3. 주 프로필 nginx. conf 를 수정 하여 인증 설정 항목 을 추가 합 니 다.
location / {
            stub_status on;#        
            access_log off;#          
            root /var/www/html/kgc;
            index  index.html index.htm;
            auth_basic "secret";#      
            auth_basci_user_file /usr/loacl/nginx/passwd.db
        }

클 라 이언 트 기반 접근 제어 1. deny IP / IP 세그먼트: 특정한 IP 나 IP 세그먼트 를 거부 하 는 클 라 이언 트 2. allow IP / IP 세그먼트: 특정한 IP 나 IP 세그먼트 의 클 라 이언 트 3. 규칙 이 위 에서 아래로 실 행 될 수 있 도록 합 니 다. 일치 하면 멈 추고 아래로 일치 하지 않 습 니 다.

location / {
            stub_status on;
            access_log off;
            root /var/www/html/kgc;
            index  index.html index.htm;

             deny 192.169.10.10; #   IP
             allow all;
        }

Nginx 가상 호스트
모든 가상 웹 사이트 에는 독립 된 server {} 설정 단 이 있 습 니 다. 각자 감청 하 는 ip 주소 포트 번 호 는 따로 지정 할 수 있 습 니 다. 네트워크 이름 이 다 릅 니 다. 1. IP 기반 가상 호스트 2. 도 메 인 이름 기반 가상 호스트 3. 포트 기반 가상 호스트
도 메 인 이름 기반 가상 호스트 설정
server { #  www.kgc.com     
        listen       80;  
        server_name  www.kgc.com; #    
        charset utf-8;
        access_log  logs/www.kgc.com.host.access.log;

        location / {
            root /var/www/html/kgc; #www.kgc.com    
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

server { #  www.accp.com      
        listen       80; 
        server_name  www.accp.com;#    
        charset utf-8;
        access_log  logs/www.accp.com.host.access.log;

        location / {
            root /var/www/html/accp; #    
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        }

ip 주소 기반
server {
        listen 192.168.242.220:80; #  192.168.242.220
        server_name  192.168.242.220:80; 
        charset utf-8;
        access_log  logs/www.kgc.com.host.access.log;

        location / {
            root /var/www/html/kgc;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

server {
        listen 192.168.242.167:80;
        server_name  192.168.242.167:80; #  192.168.242.167
        charset utf-8;
        access_log  logs/www.accp.com.host.access.log;

        location / {
            root /var/www/html/accp;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        }

포트 기반
server {
        listen 192.168.242.220:80;
        server_name  192.168.242.220:80;
        charset utf-8;
        access_log  logs/www.kgc.com.host.access.log;

        location / {
            root /var/www/html/kgc;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    server {
        listen 192.168.242.220:8080;
        server_name  192.168.242.220:8080;
        charset utf-8;
        access_log  logs/www.accp.com.host.access.log;

        location / {
            root /var/www/html/accp;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        }

좋은 웹페이지 즐겨찾기