Linux --- Nginx 부 드 러 운 업그레이드 graceful

nginx 의 부 드 러 운 업그레이드, 끊 임 없 는 서비스
Nginx 는 우리 가 부 드 러 운 업 그 레이 드 를 실현 하도록 편리 하 게 도와 주 었 다.그 원 리 는 간단하게 요약 하면 다음 과 같다.
(1) 오래된 프로 세 스 를 멈 추 지 않 고 새 프로 세 스 를 시작 합 니 다.
(2) 오래된 프로 세 스 가 처리 하 는 요청 이 아직 끝나 지 않 았 지만 처리 요청 을 받 아들 이지 않 습 니 다.
(3) 새 프로 세 스 가 새 요청 을 받 아들 입 니 다.
(4) 오래된 프로 세 스 가 모든 요청 을 처리 하고 모든 연결 을 닫 은 후에 중단 합 니 다.
이렇게 하면 부 드 러 운 업 그 레이 드 를 편리 하 게 실현 할 수 있다.일반적으로 두 가지 상황 에서 Nginx 를 업그레이드 해 야 한다. 하 나 는 Nginx 를 업그레이드 하 는 버 전이 고 다른 하 나 는 Nginx 에 새로운 모듈 을 추가 하 는 것 이다.
 
 
 시작 하기 전에 현재 사용 하고 있 는 버 전 을 살 펴 보 세 요.
# /usr/local/nginx/sbin/nginx -V
nginx: nginx version: nginx/1.0.5
nginx: built by 
gcc
 4.1.2 20080704 (
Red Hat
4.1.2-50)
nginx: TLS SNI support disabled
nginx: configure arguments: 
--user=www
--group=www --prefix=/usr/local/nginx --with-http_stub_status_module
--with-http_ssl_module --with-http_flv_module --with-cc-opt=-O3
--with-cpu-opt=opteron --with-http_gzip_static_module

※ 이것 은 이전에 컴 파일 된 매개 변수 입 니 다.새 버 전 당장 편집 해 야 돼.
2. 새 버 전 다운로드:http://nginx.org/en/download.html
그리고: 압축 풀기 > 이전의 준비 > 컴 파일
# tar zxvf nginx-1.0.5.tar.gz
# cdnginx-1.0.5
# ./configure 
--user=www 
--group=www 
--prefix=/usr/local/nginx 
--with-http_stub_status_module 
--with-http_ssl_module 
--with-http_flv_module 
--with-cc-opt='-O3' 
--with-cpu-opt=opteron 
--with-http_gzip_static_module
# 
make

3. 실행 이 끝 난 후, 여 기 는 make install 에서 이름 을 바 꾸 지 않 아 도 됩 니 다. / sbin / nginx 는 nginx. old 입 니 다.
# mv /usr/local//nginx/sbin/nginx   /usr/local/nginx/sbin/nginx.old

 
4. 컴 파일 된 obbs 디 렉 터 리 에 있 는 nginx 파일 을 nginx 의 설치 디 렉 터 리 sbin / 아래로 복사 합 니 다.
# cp objs/nginx /usr/local/nginx/sbin/

 
 
5. 새로 복사 한 파일 의 효력 발생 상황 을 테스트 합 니 다.
# /usr/local/nginx/sbin/nginx -tnginx: the configuration file/usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is
successful

6. nginx 로 하여 금 nginx. pid 파일 을 nginx. pid. oldbin 으로 수정 하 게 하고 nginx 를 시작 하여 끊 임 없 는 작업 을 실현 합 니 다.
# kill -USR2 `cat /usr/local/nginx/logs/nginx.pid` 
##      ,           ID       .oldbin,     ls /usr/local/nginx/logs       
 
# kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin` ##        ,            ,   QUIT        ,              :kill -QUIT      

7. 업그레이드 가 완료 되 었 습 니 다. 마지막 으로 업 그 레이 드 된 버 전 을 살 펴 보 겠 습 니 다.
# /usr/local/nginx/sbin/nginx -v
nginx: nginx version: nginx/1.0.5

 
tip:
현재 새 버 전 을 사용 할 지, 아니면 이전 버 전 으로 복원 할 지 결정 할 수 있 습 니 다.
kill - UP 오래된 주 프로 세 스 번호: Nginx 는 설정 파일 을 다시 불 러 오지 않 은 상태 에서 작업 프로 세 스 를 시작 합 니 다.
kill - QUIT 새 주 프로 세 스 번호 :작업 프로 세 스 를 여 유 롭 게 닫 습 니 다.
kill - TERM 새 주 프로 세 스 번호: 강제 종료
kill 새 주 프로 세 스 번호 나 오래된 주 프로 세 스 번호: 어떤 이유 로 새로운 작업 프로 세 스 가 종료 되 지 않 으 면 kill 신 호 를 보 냅 니 다.
 
새 메 인 프로 세 스 가 종료 되면 오래된 메 인 프로 세 스 는. oldbin 접 두 사 를 제거 하고 그의. pid 파일 로 복원 합 니 다. 그러면 모든 것 이 업그레이드 전 으로 복 원 됩 니 다.

좋은 웹페이지 즐겨찾기