어떻게 우아 하 게 워 커 프로 세 스 를 닫 습 니까?

2249 단어 nginx
앞서 우리 가 Nginx 명령 행 을 설명 할 때 Nginx 가 멈 추 는 것 은 두 가지 방식 이 있 는데 그것 이 바로 nginx -s quitnginx -s stop 이다. 그 중에서 stop 은 Nginx 를 즉시 멈 추 는 것 을 말 하 는데 quit 는 우아 하 게 Nginx 를 닫 는 것 을 말 하 는데 대응 하 는 신호 도 마찬가지 이다. 그리고 우리 가 전에 언급 한 reload 와 열 업그레이드 등 과정 에서 우아 한 정지 Nginx 와 관련 되 었 다.
우아 하 게 멈 추 는 Nginx 라 는 과정 은 과연 어떤 과정 일 까? 이제 함께 배 워 보 겠 습 니 다.
우아 하 게 닫 는 것 은 무엇 입 니까?
우아 한 닫 기 란 워 커 프로 세 스 에 대한 것 입 니 다. 워 커 프로 세 스 만 요청 을 처리 할 수 있 기 때 문 입 니 다.만약 에 저희 가 연결 을 처리 할 때 연결 이 요청 에 어떤 역할 을 하 든 링크 를 직접 닫 으 면 사용자 가 오 류 를 받 을 수 있 습 니 다. 그래서 우아 하 게 닫 는 것 은 Nginx 의 worker 프로 세 스 가 현재 연결 이 요청 을 처리 하고 있 지 않 은 것 을 식별 하고 이 럴 때 연결 을 닫 는 것 을 말 합 니 다.
일부 요청 에 대해 Nginx 는 워 커 프로 세 스 를 우아 하 게 닫 을 수 없습니다. 예 를 들 어 Nginx 가 웹 소켓 프로 토 콜 을 대리 할 때 웹 소켓 뒤에서 통신 하 는 frame 정 에서 Nginx 는 그의 정 보 를 분석 하지 않 습 니 다.Nginx 가 TCP 층 이나 UDP 층 의 역방향 대 리 를 할 때 요청 이 얼마나 많은 메 시 지 를 거 쳐 야 끝 나 는 지 식별 할 수 없습니다.하지만 HTTP 요청 에 대해 서 는 Nginx 가 할 수 있 기 때문에 우아 하 게 닫 는 것 은 주로 HTTP 요청 을 겨냥 한 것 입 니 다.
다음은 워 커 프로 세 스 를 우아 하 게 닫 는 데 어떤 절차 가 있 는 지 살 펴 보 자.
우아 한 닫 기 프로 세 스
우선 첫 번 째 단 계 는 타 이 머 를 설정 합 니 다. ngix. conf 에서 worker 를 설정 할 수 있 습 니 다.shutdown_timeout, worker 설정 완료shutdown_timeout 이후 우아 한 닫 기 절차 에 들 어 갔다 는 표지 판 을 추가 합 니 다.
두 번 째 단 계 는 감청 핸들 을 닫 습 니 다. 워 커 프로 세 스 가 새로운 연결 을 처리 하지 않도록 해 야 합 니 다.
다음 에는 연결 풀 을 먼저 보 겠 습 니 다. Nginx 는 자원 이용 을 극 대화 하기 위해 남 은 연결 을 저장 하지만 끊 기지 않 으 면 남 은 연결 을 먼저 닫 습 니 다.
네 번 째 단 계 는 매우 오래 걸 릴 수 있 는 단계 입 니 다. Nginx 는 주동 적 으로 바로 닫 는 것 이 아니 라 첫 번 째 단 계 를 통 해 추 가 된 플래그 비트 입 니 다. 그리고 순환 에서 요청 처리 가 끝 날 때마다 이 요청 에 사 용 된 연결 을 끄 기 때문에 순환 중 에 모든 닫 기 를 기다 리 는 시간 이 오래 걸 릴 수 있 습 니 다.worker 설정 하면shutdown_timeout 의 경우 요청 이 아직 처리 되 지 않 았 더 라 도 시간 이 되면 이 요청 들 은 강제 적 으로 닫 힌 다. 즉, 우아 하 게 닫 는 것 이 절반 밖 에 되 지 않 았 고 일부 연결 은 즉시 중단 되 었 다 는 것 이다.
따라서 다음 두 가지 조건: 모든 순환 에서 연결 이 우아 하 게 닫 히 거나 워 커 에 도달 할 때shutdown_timeout 시간 타이머 이후 워 커 프로 세 스 는 즉시 종 료 됩 니 다.
총결산
이 글 은 주로 워 커 프로 세 스 가 우아 하 게 닫 히 는 과정 을 설명 합 니 다. 우 리 는 Nginx 우아 하 게 닫 는 특성 을 사용 할 때 가 많 습 니 다. 그러면 이 특성 이 효력 을 잃 었 을 때 우 리 는 Nginx 가 연결 이 올 바 르 게 꺼 져 야 하 는 지 판단 할 능력 이 있 는 지 를 고려 해 야 합 니 다.또는 오류 가 발생 하거나 일부 모듈 이나 일부 클 라 이언 트 가 요청 을 정상적으로 처리 하지 못 할 경우 Nginx 는 워 커 와 같은 예외 적 인 조치 가 필요 합 니 다.shutdown_타임 아웃 은 Nginx 의 오래된 워 커 프로 세 스 가 정상적으로 종 료 될 수 있 도록 합 니 다.

좋은 웹페이지 즐겨찾기