nginx 시작, 재 부팅, 프로필 재 불 러 오기, 부 드 러 운 업그레이드

9223 단어 nginx
> 0 기반 을 공유 하고 알 기 쉬 우 며 매우 재 미 있 고 유머 러 스 한 [인공지능 튜 토리 얼 (방문 을 직접 클릭 할 수 없 으 면 '오른쪽 버튼' - > '새 탭 에서 링크 열기' 방식 으로 엽 니 다)] (https://www.cbedai.net/gnailoug/) 사이트, 사이트 주소:https://www.cbedai.net/gnailoug/
 
Nginx 는 주 프로 세 스 와 몇 개의 작업 프로 세 스 가 있 습 니 다. 주 프로 세 스 의 주요 역할 은 설정 파일 을 읽 고 평가 하 며 작업 프로 세 스 를 관리 하 는 것 입 니 다. 작업 프로 세 스 는 요청 을 실제 처리 하 는 것 입 니 다.작업 프로 세 스 의 수 는 설정 파일 에 설정 되 어 있 으 며, 일반적으로 cpu 의 핵심 수 * 스 레 드 로 설정 되 어 있 습 니 다.
 
nginx 는 신호 제 어 를 통 해 기본 적 인 상황 에서 주 프로 세 스 의 프로 세 스 ID 를 / usr / local / nginx / logs / nginx. pid 파일 에 기록 할 수 있 습 니 다.신 호 는 nginx 를 통 해 실행 가능 한 파일 을 nginx (nginx - s 신호) 에 보 낼 수도 있 고, 유 닉 스 의 kill 명령 을 통 해 nginx 에 보 낼 수도 있 습 니 다. 이 경우 지정 한 프로 세 스 ID 에 신 호 를 직접 보 내 는 프로 세 스 입 니 다. 예 를 들 어 kill QUIT 1628.
 
nginx 설치 참고: CentOS 6.5 Nginx 를 컴 파일 하여 설치 하 는 방법
1. nginx 를 시작 하고 nginx 의 실행 가능 한 파일 을 직접 실행 합 니 다.
 
[root@localhost ~]# /usr/local/nginx/sbin/nginx

2, 정지 nginx
 
빠 른 닫 기: nginx - s stop 또는 kill - TERM 주 프로 세 스 번호 또는 kill - INT 주 프로 세 스 번호
[root@localhost sbin]# pwd
/usr/local/nginx/sbin
[root@localhost sbin]# ./nginx -s stop

 
혹은
 
[root@localhost sbin]# ps -ef |grep nginx|grep master
root       9879      1  0 13:15 ?        00:00:00 nginx: master process ./nginx
[root@localhost sbin]# kill -TERM 9879

혹은
 
[root@localhost sbin]# kill -INT 9879

 
 
우아 하 게 닫 기 (새로운 연결 요청 을 받 아들 이지 않 고 오래된 연결 요청 이 처 리 될 때 까지 기 다 렸 다가 닫 기): nginx - s quit 또는 kill - QUIT 메 인 프로 세 스 번호
[root@songguoliang sbin]# pwd
/usr/local/nginx/sbin
[root@songguoliang sbin]# ./nginx -s quit

메모: 이 명령 을 실행 하 는 사용 자 는 nginx 를 시작 하 는 사용자 일 것 입 니 다.
[root@localhost sbin]# ps -ef |grep nginx
root       9889      1  0 13:17 ?        00:00:00 nginx: master process ./nginx
nobody     9890   9889  0 13:17 ?        00:00:00 nginx: worker process
root       9893   2008  0 13:18 pts/1    00:00:00 grep nginx
[root@localhost sbin]# kill -QUIT 9889

3. 프로필 다시 불 러 오기: nginx - s reload 혹은 kill - UP 주 프로 세 스 번호
nginx 설정 부 드 러 운 업 데 이 트 는 메 인 프로 세 스 가 설정 파일 을 다시 읽 을 수 있 도록 메 인 프로 세 스에 HUP 신 호 를 보 내야 합 니 다. 메 인 프로 세 스 가 설정 을 다시 불 러 오 는 신 호 를 받 으 면 설정 파일 문법의 유효성 을 검사 한 다음 새 설정 을 적용 하려 고 합 니 다. 즉, 새 로그 파일 과 새로운 socket 감청 을 엽 니 다. 실패 하면,스크롤 백 설정 을 변경 하고 오래된 설정 을 계속 사용 합 니 다. 성공 하면 새로운 작업 프로 세 스 를 시작 하고 오래된 작업 프로 세 스에 우아 하 게 닫 으 라 는 메 시 지 를 보 냅 니 다. 오래된 작업 프로 세 스 가 닫 힌 신 호 를 받 은 후에 새로운 요청 을 받 지 않 습 니 다. 요청 이 있 으 면 처리 하고 있 습 니 다. 현재 요청 이 끝 난 후에 닫 습 니 다. 요청 이 없 으 면 처리 하고 있 습 니 다.바로 닫 습 니 다.
 
[root@localhost sbin]# ./nginx -s reload

 
혹은
 
[root@localhost sbin]# ps -ef|grep nginx
root       9944      1  0 13:22 ?        00:00:00 nginx: master process ./nginx
nobody     9949   9944  0 13:23 ?        00:00:00 nginx: worker process
root       9960   9917  0 13:28 pts/1    00:00:00 grep nginx
[root@songguoliang sbin]# kill -HUP 9944

 
 
 
4. 설정 파일 을 테스트 하고 설정 파일 문법 이 정확 한 지 확인 한 다음 에 파일 과 관련 된 설정 을 열 려 고 합 니 다: nginx - t
 
[root@localhost sbin]# ./nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

5. nginx 버 전 정보 보기: nginx -v
 
 
[root@songguoliang sbin]# ./nginx -v
nginx version: nginx/1.10.1

6. nginx 버 전 정보 보기, 컴 파일 버 전, 설정 매개 변수: nginx - V
 
 
 
 
[root@songguoliang sbin]# ./nginx -V
nginx version: nginx/1.10.1
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) 
configure arguments: --prefix=/usr/local/nginx

 
 
7. 로그 파일 을 다시 시작 합 니 다. 로그 파일 을 백업 할 때 자주 사용 합 니 다: nginx - s reopen 또는 kill - USR 1 메 인 프로 세 스 번호
 
[root@localhost sbin]# ./nginx -s reopen

혹은
 
[root@localhost sbin]# kill -USR1 2030

nginx 는 inode 를 통 해 로그 파일 을 가리 키 기 때문에 inode 는 파일 이름과 무관 하기 때문에 로그 파일 의 이름 을 바 꾸 더 라 도 nginx 는 로그 파일 을 원본 파일 에 기록 합 니 다. 위의 명령 으로 로그 파일 을 다시 열 어야 로 그 를 새로운 로그 파일 에 기록 할 수 있 습 니 다.
 
 
8. nginx 의 부 드 러 운 업그레이드
 
서버 모듈 을 업그레이드 하거나 추가, 삭제 할 필요 가 있 을 때 nginx 의 부 드 러 운 업 그 레이 드 를 통 해 서 비 스 를 중단 하지 않 고 nginx 를 업그레이드 할 수 있 습 니 다.
(1) 새로운 nginx 실행 가능 한 프로그램 으로 오래된 실행 가능 한 프로그램 을 교체 합 니 다. 즉, 새로운 nginx 를 다운로드 하여 이전 버 전의 설치 경로 로 다시 컴 파일 합 니 다. (다시 컴 파일 하기 전에 오래된 실행 가능 한 파일 을 백업 할 수 있 습 니 다)
(2) nginx 메 인 프로 세 스 번호 에 USR 2 신 호 를 보 냅 니 다.
 
[root@localhost sbin]# kill -USR2 9944

명령 실행 전 프로 세 스:
 
 
[root@localhost sbin]# ps -ef |grep nginx
root       9944      1  0 13:22 ?        00:00:00 nginx: master process ./nginx
nobody     9965   9944  0 13:29 ?        00:00:00 nginx: worker process
root      10010   9917  0 13:42 pts/1    00:00:00 grep nginx

명령 실행 후 프로 세 스:
 
 
[root@localhost sbin]# ps -ef |grep nginx
root       9944      1  0 13:22 ?        00:00:00 nginx: master process ./nginx
nobody     9965   9944  0 13:29 ?        00:00:00 nginx: worker process
root      10012   9944  0 13:43 ?        00:00:00 nginx: master process ./nginx
nobody    10013  10012  0 13:43 ?        00:00:00 nginx: worker process
root      10015   9917  0 13:43 pts/1    00:00:00 grep nginx

nginx 에 USR 2 신 호 를 보 내 면 nginx 는 logs / nginx. pid 파일 을 nginx. pid. oldbin 으로 이름 을 바 꾸 고 실행 가능 한 새 파일 로 새 nginx 메 인 프로 세 스 와 대응 하 는 작업 프로 세 스 를 시작 하고 새 nginx. pid 를 새로 만 들 고 새 메 인 프로 세 스 번 호 를 저장 합 니 다.
 
 
[root@songguoliang logs]# pwd
/usr/local/nginx/logs
[root@songguoliang logs]# ll
    16
-rw-r--r--. 1 nobody root 596 10   8 13:02 access.log
-rw-r--r--. 1 nobody root 881 10   8 13:43 error.log
-rw-r--r--. 1 root   root   6 10   8 13:43 nginx.pid
-rw-r--r--. 1 root   root   5 10   8 13:22 nginx.pid.oldbin
[root@songguoliang logs]# cat nginx.pid
10012
[root@songguoliang logs]# cat nginx.pid.oldbin 
9944

 
이 때 nginx 의 새로운 인 스 턴 스 와 오래된 인 스 턴 스 가 동시에 작업 하여 연결 을 요청 합 니 다.다음은 오래된 인 스 턴 스 프로 세 스 를 닫 아야 합 니 다.
(3) 오래된 주 프로 세 스에 WINCH 신호, kill - WINCH 오래된 주 프로 세 스 번 호 를 보 냅 니 다.
 
[root@localhost sbin]# ps -ef |grep nginx
root       9944      1  0 13:22 ?        00:00:00 nginx: master process ./nginx
nobody     9965   9944  0 13:29 ?        00:00:00 nginx: worker process
root      10012   9944  0 13:43 ?        00:00:00 nginx: master process ./nginx
nobody    10013  10012  0 13:43 ?        00:00:00 nginx: worker process
root      10092   9917  0 14:05 pts/1    00:00:00 grep nginx
[root@localhost sbin]# kill -WINCH 9944
[root@localhost sbin]# 
[root@localhost sbin]# 
[root@localhost sbin]# 
[root@localhost sbin]# ps -ef |grep nginx
root       9944      1  0 13:22 ?        00:00:00 nginx: master process ./nginx
root      10012   9944  0 13:43 ?        00:00:00 nginx: master process ./nginx
nobody    10013  10012  0 13:43 ?        00:00:00 nginx: worker process
root      10094   9917  0 14:06 pts/1    00:00:00 grep nginx

오래된 주 프로 세 스 번 호 는 WINCH 신 호 를 받 은 후 오래된 프로 세 스 번 호 를 관리 하 는 오래된 작업 프로 세 스 를 우아 하 게 닫 습 니 다.즉, 오래된 작업 프로 세 스 가 모두 닫 히 고 새로운 작업 프로 세 스 만 연결 요청 을 처리 하고 있 습 니 다.오래된 프로 세 스 의 감청 socket 이 멈 추 지 않 았 기 때문에 오래된 프로 세 스 서 비 스 를 복원 할 수 있 습 니 다.
 
(4) 오래된 메 인 프로 세 스에 QUIT 신 호 를 보 내 서 닫 습 니 다.
 
[root@localhost sbin]# kill -QUIT 9944
[root@localhost sbin]# ps -ef |grep nginx
root      10012      1  0 13:43 ?        00:00:00 nginx: master process ./nginx
nobody    10013  10012  0 13:43 ?        00:00:00 nginx: worker process
root      10118   9917  0 14:16 pts/1    00:00:00 grep nginx

오래된 메 인 프로 세 스에 QUIT 신 호 를 보 낸 후, 오래된 메 인 프로 세 스 가 종료 되 고, logs / nginx. pid. oldbin 파일 을 제거 하 며, nginx 의 업그레이드 가 완료 되 었 습 니 다. 
 
도중에 업 그 레이 드 를 중단 하고 낡은 nginx 로 스크롤 백 합 니 다.
단계 (3) 에서 낡은 nginx 로 돌아 가 더 이상 업그레이드 하지 않 으 려 면
(1) 이전 주 프로 세 스 번호 에 HUP 명령 을 보 냅 니 다. 이 때 nginx 는 설정 파일 을 다시 읽 지 않 고 이전 주 프로 세 스 의 작업 프로 세 스 를 다시 시작 합 니 다.
 
[root@localhost sbin]# kill -HUP 9944

 
(2) 새로운 메 인 프로 세 스 를 우아 하 게 닫 습 니 다.
 
[root@localhost sbin]# kill -QUIT 10012

 
주: 어떤 이유 로 새 주 프로 세 스 의 작업 프로 세 스 를 닫 을 수 없 으 면 프로 세 스 번호 에 KILL 신 호 를 직접 보 냅 니 다.
 
 
nginx 의 프로 세 스 는 주 프로 세 스 와 작업 프로 세 스 로 나 뉘 어 있 습 니 다. nginx 의 신호 에 대해 주 프로 세 스 는 다음 과 같은 신 호 를 지원 합 니 다. TERM, INT 는 QUIT 의 우아 한 닫 기 를 빠르게 닫 습 니 다.
 
 
KILL 은 완고한 프로 세 스 HUP 를 닫 고 설정 을 변경 합 니 다. 새 설정 을 사용 하여 새 작업 프로 세 스 를 시작 합 니 다. 오래된 프로 세 스 USR 1 을 우아 하 게 닫 고 로그 파일 USR 2 를 다시 시작 합 니 다.단일 작업 프로 세 스 가 지원 하 는 신 호 는 TERM, INT 가 QUIT 를 빠르게 닫 고 USR 1 을 우아 하 게 닫 고 로그 파일 을 다시 시작 합 니 다. WINCH 이상 종료 디 버 깅 (debug points 를 시작 해 야 합 니 다)
 
> 0 기반 을 공유 하고 알 기 쉬 우 며 매우 재 미 있 고 유머 러 스 한 [인공지능 튜 토리 얼 (방문 을 직접 클릭 할 수 없 으 면 '오른쪽 버튼' - > '새 탭 에서 링크 열기' 방식 으로 엽 니 다)] (https://www.cbedai.net/gnailoug/) 사이트, 사이트 주소:https://www.cbedai.net/gnailoug/
 
 
 

좋은 웹페이지 즐겨찾기