Nginx 부 드 럽 게 업그레이드 하 는 자세 한 방법

6316 단어
1. 부 드 러 운 업그레이드 개술 Nginx 는 우리 가 부 드 러 운 업 그 레이 드 를 실현 하 는 데 편리 하 게 도움 을 주 었 다.그 원 리 는 간단하게 요약 하면 (1) 오래된 프로 세 스 를 멈 추 지 않 고 새로운 프로 세 스 를 시작 하 는 것 이다.(2) 오래된 프로 세 스 가 처리 하 는 요청 이 아직 끝나 지 않 았 지만 처리 요청 을 받 아들 이지 않 습 니 다.(3) 새 프로 세 스 가 새 요청 을 받 아들 입 니 다.(4) 오래된 프로 세 스 가 모든 요청 을 처리 하고 모든 연결 을 닫 은 후에 중단 합 니 다.이렇게 하면 부 드 러 운 업 그 레이 드 를 편리 하 게 실현 할 수 있다.일반적으로 두 가지 상황 에서 Nginx 를 업그레이드 해 야 한다. 하 나 는 Nginx 를 업그레이드 하 는 버 전이 고 다른 하 나 는 Nginx 에 새로운 모듈 을 추가 하 는 것 이다.2. 업그레이드 과정의 구체 적 인 조작 도 간단 하 다. 다음 과 같다.
(0) 현재 버 전 을 보고 Nginx 의 실행 가능 한 파일 을 저장 하 는 디 렉 터 리 에 입력 합 니 다.

   ./nginx -V  
 

(1) 새로운 Nginx 버 전 을 다운로드 하고 컴 파일 합 니 다.

   wget nginx-1.0.11.tar.gz  
  
tar zxvf nginx-1.0.11.tar.gz 
cd nginx-1.0.11 
./configure --add-module=/customized_module_0 --add-module=/customized_module_1 
make 

make install 하지 않도록 주의 하 세 요.
(2) 이전 버 전의 실행 가능 한 파일 백업

   cd /usr/local/nginx/sbin  
  
sudo cp nginx nginx.old 

(3) 프로필 을 수정 할 필요 가 있 으 면 프로필 을 수정 합 니 다.
(4) 실행 가능 한 새 파일 복사

   sudo cp /home/michael/tmp/nginx-1.0.11/objs/nginx /usr/local/nginx/sbin/  
 

(5) 승급

   cd /home/michael/tmp/nginx-1.0.11  
  
make upgrade 

(6) 불필요 한 파일 정리

   rm -rf /home/michael/tmp/nginx-1.0.11  
 

(7) Nginx 버 전 보기

   cd /usr/local/nginx/sbin  
  
./nginx -V 

3. 프로 세 스 변화 관찰
제 기계 에서 볼 수 있 습 니 다. 제 가 설정 한 것 은 10 개의 워 커 프로 세 스 입 니 다. 시작 한 후에 관찰 할 수 있 습 니 다.

   root      6241 10419  0 10:51 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx  
  
nobody    6242  6241  2 10:51 ?        00:00:00 nginx: worker process       
nobody    6243  6241  0 10:51 ?        00:00:00 nginx: worker process       
nobody    6244  6241  0 10:51 ?        00:00:00 nginx: worker process       
nobody    6245  6241  0 10:51 ?        00:00:00 nginx: worker process       
nobody    6246  6241  0 10:51 ?        00:00:00 nginx: worker process       
nobody    6247  6241  0 10:51 ?        00:00:00 nginx: worker process       
nobody    6248  6241  0 10:51 ?        00:00:00 nginx: worker process       
nobody    6249  6241  0 10:51 ?        00:00:00 nginx: worker process       
nobody    6250  6241  0 10:51 ?        00:00:00 nginx: worker process       
nobody    6251  6241  1 10:51 ?        00:00:00 nginx: worker process       
nobody    6252  6241  0 10:51 ?        00:00:00 nginx: cache manager process 
nobody    6253  6241  0 10:51 ?        00:00:00 nginx: cache loader process 
luming    6310 25051  0 10:51 pts/1    00:00:00 grep --color=auto nginx 
nobody    7995 10419  0 Jan12 ?        00:20:37 nginx: worker process is shutting down 
nobody    7996 10419  0 Jan12 ?        00:20:11 nginx: worker process is shutting down 
nobody    7998 10419  0 Jan12 ?        00:20:04 nginx: worker process is shutting down 
nobody    8003 10419  0 Jan12 ?        00:20:12 nginx: worker process is shutting down 
root     10419     1  0 Jan08 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx 

새로운 프로 세 스 는 master 1 개 와 worker 10 개, 그리고 오래된 master 1 개 (시간 적 으로 볼 수 있 음) 와 워 커 4 개 (다른 6 개의 오래된 worker 는 모든 연결 을 처리 하고 shutdown) 가 있 음 을 알 수 있 습 니 다.loader 프로 세 스 가 하나 더 있 습 니 다.몇 초 지나 면 워 커 가 두 개 밖 에 없어 요.

   root      6241 10419  0 10:51 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx  
  
nobody    6242  6241  1 10:51 ?        00:00:00 nginx: worker process       
nobody    6243  6241  0 10:51 ?        00:00:00 nginx: worker process       
nobody    6244  6241  0 10:51 ?        00:00:00 nginx: worker process       
nobody    6245  6241  0 10:51 ?        00:00:00 nginx: worker process       
nobody    6246  6241  0 10:51 ?        00:00:00 nginx: worker process       
nobody    6247  6241  0 10:51 ?        00:00:00 nginx: worker process       
nobody    6248  6241  0 10:51 ?        00:00:00 nginx: worker process       
nobody    6249  6241  0 10:51 ?        00:00:00 nginx: worker process       
nobody    6250  6241  0 10:51 ?        00:00:00 nginx: worker process       
nobody    6251  6241  0 10:51 ?        00:00:00 nginx: worker process       
nobody    6252  6241  0 10:51 ?        00:00:00 nginx: cache manager process 
nobody    6253  6241  0 10:51 ?        00:00:00 nginx: cache loader process 
luming    6430 25051  0 10:51 pts/1    00:00:00 grep --color=auto nginx 
nobody    7996 10419  0 Jan12 ?        00:20:11 nginx: worker process is shutting down 
nobody    8003 10419  0 Jan12 ?        00:20:12 nginx: worker process is shutting down 
root     10419     1  0 Jan08 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx 

조금 만 더 지 켜 보 자.

   root      6241     1  0 10:51 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx  
  
nobody    6242  6241  0 10:51 ?        00:00:01 nginx: worker process       
nobody    6243  6241  0 10:51 ?        00:00:01 nginx: worker process       
nobody    6244  6241  0 10:51 ?        00:00:01 nginx: worker process       
nobody    6245  6241  0 10:51 ?        00:00:00 nginx: worker process       
nobody    6246  6241  0 10:51 ?        00:00:00 nginx: worker process       
nobody    6247  6241  0 10:51 ?        00:00:00 nginx: worker process       
nobody    6248  6241  0 10:51 ?        00:00:00 nginx: worker process       
nobody    6249  6241  0 10:51 ?        00:00:00 nginx: worker process       
nobody    6250  6241  0 10:51 ?        00:00:01 nginx: worker process       
nobody    6251  6241  0 10:51 ?        00:00:02 nginx: worker process       
nobody    6252  6241  0 10:51 ?        00:00:00 nginx: cache manager process 
luming    8680 25051  0 10:56 pts/1    00:00:00 grep --color=auto nginx 

Congratulations! You can upgrade your Nginx server gracefully.

좋은 웹페이지 즐겨찾기