고성능 웹 서버 Nginx 설정 및 배치 연구 (14) Nginx 를 부 드 럽 게 업그레이드 합 니 다.
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.