nginx를 다시 로드하는 동안 새로운 연결은 어떻게 되나요?

nginx를 다시 로드하는 동안 새로운 연결은 어떻게 되나요?

nginx가 다시 로드되면 마스터 프로세스는 먼저 구문 유효성을 확인한 다음 새 구성을 적용하려고 시도합니다. 이것이 성공하면 새 작업자 프로세스를 시작하고 이전 작업자 프로세스에 정상적으로 종료하도록 요청하는 메시지를 보냅니다.

마스터 프로세스는 언제 이전 작업자 프로세스에 종료 메시지를 보냅니다. 이는 새 작업자 프로세스를 만드는 것과 병행합니까, 아니면 새 작업자 프로세스가 시작된 후에만 발생합니까?

nginx 다시 로드에 더 오랜 시간이 걸리는지 알고 싶으십니까? 다시 로드 기간 동안 새 연결을 처리할 수 있습니까?

답변1

이것은nginx 문서에서:

nginx가 구성 파일을 다시 읽으려면 HUP 신호를 마스터 프로세스로 보내야 합니다. 마스터 프로세스는 먼저 구문 유효성을 확인한 다음 새 구성을 적용하려고 시도합니다. 즉, 로그 파일과 새 청취 소켓을 엽니다. 이것이 실패하면 변경 사항을 롤백하고 이전 구성으로 계속 작동합니다. 이것이 성공하면 새 작업자 프로세스를 시작하고 이전 작업자 프로세스에 정상적으로 종료하도록 요청하는 메시지를 보냅니다. 이전 작업자 프로세스는 청취 소켓을 닫고 이전 클라이언트에 계속 서비스를 제공합니다. 모든 클라이언트에 서비스가 제공되면 이전 작업자 프로세스가 종료됩니다.

연결을 제공하기 위해 하나의 오래된 작업자 프로세스가 활성 상태로 유지됩니다. 새 작업자를 시작할 수 있으면 이전 작업자는 종료됩니다. 그렇지 않으면 nginx가 이전 작업자를 다시 시작합니다.

문서에는 프로세스에 대한 자세한 예도 있습니다.

도움이 되었기를 바랍니다!

관련 정보