Nginx 의 부 드 러 운 업그레이드

4496 단어
간단 한 소개
때로는 nginx 에 모듈 이 부족 하거나 버 전 을 업그레이드 하고 싶 지만 nginx 에 일부 서비스 가 실 려 있어 서 끊 을 수 없습니다. 이렇게 nginx 의 부 드 러 운 업 그 레이 드 를 파악 하 는 것 이 중요 합 니 다.
nginx 신호 검출
주 프로 세 스 가 지원 하 는 신호
  • TERM, INT: 즉시 탈퇴
  • QUIT: 작업 이 끝 날 때 까지 기 다 렸 다가 제출 합 니 다.
  • KILL: 강자 종료 프로 세 스
  • HUP: 설정 파일 을 다시 불 러 오고 새로운 설정 으로 작업 프로 세 스 를 시작 하 며 날짜 프로 세 스 를 점차 닫 습 니 다
  • USR 1: 로그 파일 다시 열기
  • USR 2: 새로운 메 인 프로 세 스 를 시작 하여 열 업 그 레이 드 를 실현 합 니 다
  • WINCH: 작업 프로 세 스 를 점차적으로 닫 습 니 다
  • 작업 프로 세 스 가 지원 하 는 신호:
  • TERM, INT: 즉시 탈퇴
  • QUIT: 요청 처리 가 끝나 면 종료
  • USR 1: 로그 파일 다시 열기
  • 의 원리
  • 오래된 프로 세 스 를 멈 추 지 않 고 새 프로 세 스 를 시작 합 니 다.
  • 오래된 프로 세 스 가 처 리 를 맡 았 지만 처리 요청 을 받 아들 이지 않 았 습 니 다.
  • 새 프로 세 스 가 새로운 요청 을 받 아들 입 니 다.
  • 오래된 프로 세 스 가 모든 요청 을 처리 하고 모든 연결 을 닫 은 후에 중단 합 니 다.

  • 부 드 러 운 업그레이드 nginx
    제 오래된 nginx 버 전 을 먼저 볼 게 요.
    ➜  /usr/local/nginx/sbin/nginx -V
    nginx version: nginx/1.12.0
    built by gcc 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC) 
    built with OpenSSL 1.0.1e-fips 11 Feb 2013
    TLS SNI support enabled
    configure arguments: --user=nginx --group=nginx --with-http_ssl_module --with-http_gzip_static_module --with-poll_module --with-file-aio --with-http_realip_module --with-http_addition_module --with-http_addition_module --with-http_random_index_module --with-http_stub_status_module --with-pcre=/usr/local/src/pcre-8.42 --with-stream
    

    나 는 그것 을 nginx 1.14.0 으로 업그레이드 할 것 이다.
    다운로드 1.14.0nginx
    wget http://nginx.org/download/nginx-1.14.0.tar.gz
    tar -zxvf  nginx-1.14.0.tar.gz
    ./configure --prefix=/home/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_gzip_static_module --with-poll_module --with-file-aio --with-http_realip_module --with-http_addition_module --with-http_addition_module --with-http_random_index_module --with-http_stub_status_module --with-pcre=/usr/local/src/pcre-8.42 --with-stream  #--prefix              
    make  #      make,  make install,  make install,            
    

    그리고 원래 바 이 너 리 시작 파일 을 백업 합 니 다.
    mv /home/nginx/sbin/nginx /home/nginx/sbin/nginx_old 
    cp /usr/src/nginx-1.11.2/objs/nginx /usr/local/nginx/sbin/ #               
    

    우선 프로 세 스 보기
    ps -ef |grep  nginx
    root      10111      1  0 10:17 ?        00:00:00 nginx: master process ./nginx
    nginx     10112  10111  0 10:17 ?        00:00:00 nginx: worker process
    root      16669   9963  0 10:54 pts/0    00:00:00 grep --color=auto nginx
    

    그리고 새 시작 파일 을 불 러 와 열 업 그 레이 드 를 실현 합 니 다.
    kill -USR2 `cat home/nginx/logs/nginx.pid` #  USR2   nginx master   (nginx     USR2   ,      nginx.pid      .oldbin,  nginx.pid.oldbin,                 ,          ,         Nginx      web  )
    
    ps -ef |grep  nginx
    root      10111      1  0 10:17 ?        00:00:00 nginx: master process ./nginx
    nginx     10112  10111  0 10:17 ?        00:00:00 nginx: worker process
    root      16671  10111  0 10:57 ?        00:00:00 nginx: master process ./nginx
    nginx     16672  16671  0 10:57 ?        00:00:00 nginx: worker process
    root      16699   9963  0 10:57 pts/0    00:00:00 grep --color=auto nginx
    

    nginx 프로 세 스 가 두 개 있 습 니 다. 오래된 nginx 프로 세 스 가 아직 있 습 니 다.
    WINCH 신호 (Worker process 정지) 와 QUIT 신호 (Nginx 서비스 정지 완화) 를 보 내 서 오래된 Nginx 서비스 프로 세 스 를 중단 하고 이전 프로 세 스 와 이전 프로 세 스 의 작업 프로 세 스 를 점차 닫 습 니 다.
    kill -WINCH `cat /home/nginx/logs/nginx.pid.oldbin`
    kill -QUIT `cat /home/nginx/logs/nginx.pid.oldbin`
    

    프로 세 스 다시 보기
    ps -ef |grep nginx
    root      16671      1  0 10:57 ?        00:00:00 nginx: master process ./nginx
    nginx     16672  16671  0 10:57 ?        00:00:00 nginx: worker process
    root      16707   9963  0 10:59 pts/0    00:00:00 grep --color=auto nginx
    

    이 럴 때 버 전 정보 다시 보기.
    ./nginx -V
    nginx version: nginx/1.14.0
    built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) 
    built with OpenSSL 1.0.2k-fips  26 Jan 2017
    TLS SNI support enabled
    configure arguments: --prefix=/home/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_gzip_static_module --with-poll_module --with-file-aio --with-http_realip_module --with-http_addition_module --with-http_addition_module --with-http_random_index_module --with-http_stub_status_module --with-pcre=/usr/local/src/pcre-8.42 --with-stream
    

    오래된 nginx 프로 세 스 가 닫 혔 고 버 전도 nginx 1.14.0 으로 업그레이드 되 었 습 니 다. 이 는 업무 가 중단 되 지 않 는 열 업그레이드 과정 을 실현 합 니 다.

    좋은 웹페이지 즐겨찾기