웹서버/nginx

[정보] Nginx 기동/종료/재시작 하기

투칼론 2019. 5. 26. 17:55
반응형

Nginx 기동, 종료, 재시작하기

Nginx를 어떻게 기동시키고, 실행 중일때, 어떻게 종료시키고, 재시작시키는지를 설명하고자 한다.

Nginx 기동하기

Nginx는 보통 /usr/bin/nginx 라는 명령어로 기동시킨다.

예시#1)

  $ /usr/bin/nginx


예시#2) 기동 시에 다양한 옵션 설정할 수 있음 (옵션은 아래에 설정되어 있음)

  $ /usr/bin/nginx -t -c ~/myynginx.conf -g "pid /var/run/nginx.pid; worker_processes 2;"


옵션들


-?, -h

 도움말(Help) 출력 

 -v

 버전 정보 출력 

 -V

 버전 정보는 물론 컴파일러 버전, 구성파일 파라미터 정보 출력

 -t

 기동하지 않고, 구성 파일 문법 등 온전성을 점검함

 -s 시그널

 마스터 프로세스에 Signal을 보냄. stop, quit, reopen, reload (버전 >= 0.753)

 -p path

 Nignx prefix 경로를 설정함. (디폴트 : /usr/local/nginx/). (버전 >=0.7.53)

 -c 파일명

 디폴트 파일명 대신 사용될 구성파일 지정

 -g directives

 글로벌 directives 지정 (버전 >= 0.74)


Nginx 종료, 재시작하기

이미 실행 중인 Nginx를 종료시키는 방법은 2가지가 있다. 하나는 위의 옵션들에서 "-s stop/quit"을 사용하는 것이고, 하나는 리눅스 명령어인 "kill 시그널" 명령어를 실행하는 것이다.

예시#1)

  $ /usr/bin/nginx  -s  stop   // shutdown

  $ /usr/bin/nginx  -s  quit   // Gracefully shutdown


예시#2) "/usr/local/nginx/logs/nginx.pid"은 마스터 프로세스의 pid가 기록된 파일임

  $   kill -QUIT $(cat /usr/local/nginx/logs/nginx.pid)


리눅스에서 kill 명령어 다음에 다양한 시그널 정보가 올 수 있는데, Nginx에서 시그널 정보는 아래와 같은 컨트롤 의미를 갖는다.

TERM, INT

 Quick Shutdown

 QUIT

 Gracefully Shutdown

 KILL

 종료가 잘 되지 않은 프로세스 강제로 종료

 HUP

 설정 재로딩하기. 새로운 worker 프로세스가 기동할 때 적용되고, 기존 worker는 자동으로 gracefully shutdown 됨

 USR1

 로그 파일 다시 열기

 USR2

 운영 중에 바이너리 파일 업그레이드 하기

 WINCH

 worker 프로세스만 gracefully shutdown하기


참고로, worker 프로세스들에게 TERM, INT, QUIT, USR1 시그널을 직접 날릴 수도 있음