Nginx 프로필 상세 설명 및 Nginx 의 시작 제어, 여 기 는 에센스 입 니 다.

6303 단어
지식 요점:
nginx 의 정지 제어
nginx 설정 파일 해독
nginx 정지 제어
Nginx 서버 를 설치 한 후에 우 리 는 어떻게 시작 하고 정지 하 며 Nginx 서 비 스 를 다시 시작 하 는 지 배 워 야 합 니 다.Linux 플랫폼 에서 Nginx 의 작 동 을 제어 하 는 방법 만 있 는 것 이 아니 라 상세 하 게 배 워 보 겠 습 니 다.Nginx 의 신호 통 제 는 nginx 를 제어 하 는 데 있어 신호 통 제 를 통 해 이 루어 집 니 다. 따라서 우 리 는 Nginx 서버 의 신호 통 제 를 소개 합 니 다. nginx 서비스 가 실 행 될 때 하나의 메 인 프로 세 스 와 여러 개의 worker process 작업 프로 세 스 를 유지 합 니 다. 우 리 는 메 인 프로 세 스에 신 호 를 보 내 면 서비스의 작 동 을 제어 할 수 있 습 니 다. 그러면 우 리 는 어떻게 서비스 에 신 호 를 보 냅 니까?신 호 를 보 내 려 면 서비스의 PID 를 알 아야 합 니 다. 그러면 우 리 는 그의 프로 세 스 ID 를 가 져 와 서 첫 번 째 로 ps 를 이용 하여 상세 한 정 보 를 확인 해 야 합 니 다.
ps -ef | grep nginx
ps aux | grep nginx 
     
#    linux     ,           

두 번 째 는 파일 저장 소 주 소 를 직접 봅 니 다. 이 동작 은 pid 저장 소 를 먼저 열 어야 효력 이 발생 합 니 다.
#   logs   
cd logs

#       
ll

# Nginx.pid        ,   nginx pid
vi nginx.pid 

우리 pid 를 찾 으 면 다음 작업 을 시작 할 수 있 습 니 다. 시작 하기 전에 받 아들 일 수 있 는 신호 가 어떤 것 이 있 는 지, 각자 어떤 의미 가 있 는 지 알 아 보 세 요.
시그 널
사용법
TERM/INT
nginx 서비스 빠 른 정지
QUIT
느 린 nginx 서비스 정지
HUP
부 드 러 운 재 부팅 은 새로운 프로필 을 사용 하여 시작 한 후 기 존 프로 세 스 를 천천히 중단 합 니 다.
USR1
로그 의 절단 에 사용 할 로 그 를 다시 엽 니 다.
USR2
새로운 nginx 버 전 으로 서 비 스 를 시작 한 후 기 존의 프로 세 스 를 천천히 중단 합 니 다. 즉, 이른바 '부 드 러 운 업그레이드' 입 니 다.
WINCH
워 커 prcess 를 천천히 중단 하고 nginx 서비스 부 드 러 운 업그레이드 에 사용 합 니 다.
Nginx 서비스 프로 세 스에 신 호 를 보 내 는 방법 도 두 가지 가 있 습 니 다.
  • 하 나 는 Nginx 바 이 너 리 파일 사용
  • 다른 하 나 는 Kill 명령 을 사용 하여 신 호 를 보 내 는 용법 은 다음 과 같다
  • .
    kill USR2  12808 #   12808  USR2  
    

    마찬가지 로 저 희 는 동적 PID kill 신호 filepath 를 사용 할 수 있 습 니 다.
    kill USR  ‘nginx.pid  ’
    

    nginx 서비스의 시작 은 Liux 플랫폼 에서 Nginx 서버 를 시작 하여 설치 디 렉 터 리 에 있 는 Sbin 디 렉 터 리 의 바 이 너 리 파일 을 직접 실행 하면 됩 니 다. 구체 적 인 명령 은 sbin 디 렉 터 리 에 있 습 니 다.
    ./nginx
    

    여기 서 주로 바 이 너 리 파일 의 용법 을 설명 합 니 다. 이것 은 우리 가 일 할 때 자주 사용 하 는 명령 입 니 다.
    #h  ?          nginx     
    ./nginx -h|?
    

    nginx 서비스 가 정지 되 는 두 가지 방법 이 있 습 니 다.
  • 빠 른 정지 란 바로 손 에 있 는 일 을 버 리 고 멈 추 는 것 을 말 합 니 다. 현재 nginx 가 처리 하고 있 는 모든 네트워크 요청 을 멈 추 는 것 을 말 합 니 다
  • 느 린 정 지 는 현재 작업 을 마 친 후에 nginx 를 멈 추 라 는 명령 이 비교적 많 고 신 호 를 보 내 서 서 서 비 스 를 중단 할 수 있다 는 것 을 말한다.비교적 자주 사용 하 는 방식 은:
  • #         
    #   nginx  
    ./nginx -s stop  
    
    #   INT | TERM       QUIT      
    ./nginx -g INT | TERM | QUIT
    
    #   ((PID     )
    kill INT | TERM | QUIT PID
    
    #        
    kill -9       id
    kill -9 pid                            
    

    * * Nginx 서비스의 재 부팅 * * 저희 Nginx 서비스 가 새로운 모듈 에 가입 한 후 현재 Nginx 서비스 에 새로운 설정 을 적용 하거나 새로운 모듈 을 사용 하 기 를 원한 다 면 Nginx 서 비 스 를 다시 시작 해 야 합 니 다.물론 우 리 는 Nginx 서 비 스 를 먼저 닫 은 다음 에 새로운 Nginx 프로필 을 사용 하여 Nginx 서 비 스 를 다시 시작 할 수 있 습 니 다. 여기 서 우 리 는 부 드 러 운 Nginx 서 비 스 를 다시 시작 하 는 과정 을 말 합 니 다. Nginx 서비스 프로 세 스 가 신 호 를 받 은 후에 우리 의 새로운 프로필 을 읽 습 니 다. 만약 에 우리 의 새로운 프로필 이 정상 이 라면 새로운 Nginx 서 비 스 를 시작 합 니 다.그리고 오래된 프로 세 스 서 비 스 를 부 드 럽 게 닫 습 니 다. 새로운 Nginx 서비스 프로필 에 문제 가 있 으 면 오 류 를 표시 하고 오래된 Nginx 를 사용 하여 다음 명령 을 사용 하면 Nginx 의 부 드 러 운 재 부팅 을 할 수 있 습 니 다.
    ./nginx -g HUB(  )  [      ]
                                、
    kill HUB PID(   pid       )
               
                 
    ./nginx -s reload         nginx              
    

    Nginx 서비스의 업그레이드 만약 에 우리 가 현재 의 Nginx 서 비 스 를 업그레이드 하고 새로운 모듈 을 응용 해 야 한다 면 가장 간단 한 방법 은 멈 춘 다음 에 새로운 Nginx 서 비 스 를 시작 하 는 것 이다. 그러면 우리 의 사용자 체험 이 매우 나 빠 서 사용자 가 한 동안 우리 의 서버 를 방문 하지 못 하 게 할 것 이다. 이 문 제 를 해결 하기 위해Nginx 는 부 드 러 운 업그레이드 방안 을 제공 합 니 다. 주의: nginx 서버 의 부 드 러 운 업 그 레이 드 를 실현 하기 위해 새로 설 치 된 서버 경 로 는 이전 과 일치 해 야 합 니 다.따라서 새로 설 치 된 서버 를 사용 하기 전에 오래된 nginx 서버 를 백업 하 는 것 을 권장 합 니 다. 여러 가지 이유 로 신 구 클 라 이언 트 경로 가 일치 하지 않 으 면 작업 을 할 수 있 습 니 다. 오래된 서버 경 로 를 새로운 경로 로 바 꾸 고 새로운 서버 를 오래된 경로 에 넣 을 수 있 습 니 다.
    #newinstallpath      
    ./nginx -p newinstallpath
    
    #        
    #        
    
    #            
    ./nginx -g USR2 
    
    #      
    kill USR2 nginx.pid  
    
    #            
    ps -ef |grpe nginx 
    
    #              
    ./nginx -g WINCH
    

    실행 과정 Nginx 서 비 스 는 USR 2 의 신 호 를 받 은 후 먼저 오래된 Nginx 를 받 습 니 다.pid 파일 뒤에 'nginx. pid. oldbin' 을 추가 하고 새 버 전의 Nginx 서버 의 바 이 너 리 파일 시작 서 비 스 를 실행 합 니 다. 시작 에 성공 하면 두 개의 Nginx 서비스 가 서 비 스 를 제공 한 후에 기 존 에 WINCH 신 호 를 보 내야 합 니 다.오래된 nginx 서 비 스 를 천천히 정지 시 키 고 nginx. pid. oldbin 파일 을 삭제 합 니 다. WINCH 신 호 를 보 내기 전에 저 희 는 언제든지 새로운 서 비 스 를 중단 할 수 있 습 니 다.
    기본 프로필 해독
    디 렉 터 리 에서 모든 프로필 이 conf 디 렉 터 리 에 놓 여 있 음 을 알 수 있 습 니 다.
    #             (                )
    
    #user  nobody; #                                  ip       
    worker_processes  1;  #               ,                  
                 
    
    #error_log  logs/error.log;  
    #             nginx  logs              
    
    
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    #        
    
    #pid        logs/nginx.pid;
    #   pid                    logs   nginx.pid  
     
    
    #events 
    #                                           
    #     worker_processes                            
    #             
    events {
        worker_connections  1024; 
        #               512             1024 -2048 
        #                    
        
        accept_mutex off; 
        #                                     
        
        multi_accept on;
        #                                      
        #            
    
        use method;
        #                       select   poll  ...          
    
    
    #       events           
    }
    #http 
    #    nginx                               
    
                           
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
        #access_log  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        #gzip  on;
    
        server {
            listen       80;
            server_name  localhost;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                root   html;
                index  index.html index.htm;
            }
    

    주의: 최근 에 nginx 에 관 한 지식 을 지속 적 으로 업데이트 하고 있 습 니 다. 여러분 의 관심 을 환영 합 니 다!

    좋은 웹페이지 즐겨찾기