고성능 웹 서버 Nginx 설정 및 배치 연구 (14) Nginx 를 부 드 럽 게 업그레이드 합 니 다.

5874 단어
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.
-
원본 링크:http://blog.csdn.net/poechant/article/details/7208167

좋은 웹페이지 즐겨찾기