Nginx가 웹소켓 연결로 멈추지 않습니다

Nginx가 웹소켓 연결로 멈추지 않습니다

websocket에 대한 연결을 업그레이드하기 위한 구성이 있는 nginx 1.6.2가 있습니다.

 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection "upgrade";

Websocket 연결이 열리지 않으면 "service nginx stop"이 작동하고 마스터 프로세스와 작업자 프로세스가 모두 정상적으로 중지됩니다.

    killproc $prog -QUIT

그러나 웹소켓이 열려 있으면 다음과 같은 결과가 나오더라도 nginx를 중지할 수 없습니다.

Stopping nginx:                                            [  OK  ]

나는 시도했다 :

killproc $prog -KILL

하지만 예상대로 처음 명령을 실행하면 마스터가 강제로 종료되고, 다시 실행하면 워커가 강제로 종료됩니다.

nginx를 강제로 종료하려면 무엇을 권장합니까? 나는 killproc을 다음으로 대체하려고 생각하고 있습니다.

pkill $prog

답변1

http://nginx.org/en/docs/control.html

대신 TERM또는 를 사용해 보십시오 . 너무 "빠르다"면 nginx의 마스터가 작업자를 중지할 기회를 주지 않습니다.INTKILLKILL

관련 정보