|
지난 며칠 동안 웹에서 Nginx 502에 많은 문제가 있었고, 처음에는 많은 사람들처럼 Nginx의 문제라고 생각했습니다.
웹은 nginx+php 아키텍처를 사용하고, 웹사이트는 오랫동안 온라인에 있지 않아 최적화는 기본적으로 초기 설정에 불과합니다.
확인php-fpm.log 경고가 있었는데, 이는 웹사이트가 정지된 시기와 거의 일치했습니다. 여기서 시작할게요.
처음에는 문서도 찾아봤지만, 다음 날에도 문제가 계속됐습니다. 나중에 설정 파일을 확인하고 번역해보니(Baidu) 영어 기반이 좋지 않았습니다. PM 모듈은 Apache의 모듈과 유사하며, 정적이고 동적입니다.
인터넷에서 언급된 많은 조정들은 대부분 역학에 기반하지만, 이 모듈을 어떻게 정의해야 하는지는 명확히 설명하지 않습니다. 따라서 동적 및 정적 설정을 사용할 때 모두 설정 파일을 꼼꼼히 살펴보는 것이 좋습니다 pm = 정적
; pm이 '정적'으로 설정되었을 때 생성될 자식 프로세스의 수와
; PM이 '동적' 또는 '온디맨드'로 설정되었을 때 최대 자식 프로세스 수가 있습니다.
; 이 값은 동시에 요청할 수 있는 한도를 설정합니다
; 봉사 중. mpm_prefork와 함께 ApacheMaxClients 지침과 동등한 것입니다.
; 원래 PHP의 PHP_FCGI_CHILDREN 환경 변수와 동등합니다
; CGI야. 아래 기본값은 자원이 부족한 서버를 기반으로 합니다. 안 함
; 개인 메시지(PM)를 조정하는 것을 잊어버리세요.
; 참고: pm이 'static', 'dynamic' 또는 'ondemand'로 설정되어 있을 때 사용됩니다.
; 참고: 이 값은 필수입니다.
pm.max_children = 300
; 시작 시 생성된 자식 프로세스의 수.
; 참고: pm이 '동적'으로 설정되어 있을 때만 사용
; 기본 값: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
;p m.start_servers = 50
; 원하는 최소 유휴 서버 프로세스 수.
; 참고: pm이 '동적'으로 설정되어 있을 때만 사용
; 참고: pm이 'dynamic'으로 설정되어 있을 때 필수입니다
;p m.min_spare_servers = 20
; 원하는 최대 유휴 서버 프로세스 수.
; 참고: pm이 '동적'으로 설정되어 있을 때만 사용
; 참고: pm이 'dynamic'으로 설정되어 있을 때 필수입니다
;pm.max_spare_servers = 500
; 유휴 프로세스가 종료되는 초의 시간입니다.
; 참고: pm이 '온디맨드'로 설정되어 있을 때만 사용
; 기본 점수: 10
pm.process_idle_timeout = 10초;
; 각 자식 프로세스가 리스폰되기 전에 실행해야 할 요청 수.
; 이것은 서드파티 라이브러리의 메모리 누수를 우회하는 데 유용할 수 있습니다. 에 대해
; 끝없는 요청 처리 중에는 '0'을 지정합니다. PHP_FCGI_MAX_REQUESTS와 동등한 수준입니다.
; 기본 값: 0
pm.max_requests = 10240
빨간 필드는 이를 정의하고, 서버 상황에 따라 매개변수를 설정하는 방법입니다
static pm.max_children 매개변수를 사용하면 작동하지만 나머지는 작동하지 않습니다. 역학은 정반대입니다.
2G 메모리 pm.max_children은 약 50개를 켜고 있는데, 이는 실제 상황에 맞게 조정하는 데 필요합니다.
만약 부족한 점이 있다면, 여러분의 의견을 듣고 싶습니다. 502 해결책입니다.
|