>  기사  >  운영 및 유지보수  >  nginx 502 불량 게이트웨이 문제를 해결하는 방법

nginx 502 불량 게이트웨이 문제를 해결하는 방법

步履不停
步履不停원래의
2019-06-21 10:30:5913172검색

nginx 502 불량 게이트웨이 문제를 해결하는 방법

Nginx 502 Bad Gateway는 요청한 PHP-CGI가 실행되었으나 어떤 이유로(보통 리소스 읽기 문제) 완료되지 않았으며 PHP-CGI 프로세스가 종료되었음을 의미합니다. 502 Bad Gateway는 php-fpm.conf 설정과 관련이 있습니다.

일반적인 이유는 php-cgi 프로세스 수가 충분하지 않거나, php 실행 시간이 길거나(mysql이 느림), php-cgi 프로세스가 종료되어 502 오류가 발생하는 것일 수 있습니다.

1. 설치된 환경에서 일정시간 실행 후 502 문제가 발생합니다. 일반적으로 기본 php-cgi 프로세스가 5개이기 때문입니다. phpcgi 프로세스가 부족하여 발생할 수 있습니다. usr/local/php/etc /php-fpm.conf max_children 값을 적절하게 늘리십시오.

2. PHP 실행 시간 초과, /usr/local/php/etc/php.ini를 수정하여 max_execution_time을 300으로 변경하세요

3 디스크 공간이 부족하면 # df -h 명령을 사용하여 디스크 사용량을 확인할 수 있습니다

4. php -cgi 프로세스가 종료되었습니다.

일반적인 문제 해결 방법은 다음과 같습니다.

1. php fastcgi

# netstat -anop | grep php-cgi | wc -l
# netstat -anpo | grep php-fpm | wc -l

디스플레이가 5

2인 경우 프로세스 수(max_children 값)를 확인하세요

# ps aux | grep php-fpm 观察fastcgi/php-fpm进程数,假如使用的进程数等于或高于5个,说明需要增加。

3. /usr/local/ 조정 php/etc/php-fpm.conf

pm.max_children = 5
request_terminate_timeout = 60

max_children의 관련 설정은 최대 5개의 프로세스이며 프로세스당 메모리는 20MB, 최대 100MB입니다. 그것은 1분입니다. max_children이 증가하면 더 많은 php-cgi 프로세스가 빠르게 처리되고 대기 중인 요청이 줄어듭니다.

그러나 max_children 설정도 서버 성능에 따라 설정해야 합니다. 일반적으로 서버의 각 php-cgi가 소비하는 메모리는 일반적인 상황에서 약 20M입니다. 실제 결정은 서버용으로 구입한 메모리에 따라 다릅니다.

request_terminate_timeout의 실행 시간은 60초이며, request_terminate_timeout 값은 서버 성능에 따라 설정될 수 있습니다. 일반적으로 성능이 좋을수록 20분에서 30분 사이에서 더 높게 설정할 수 있습니다.

4. 일부 PHP 프로그램의 실행 시간은 Nginx의 대기 시간을 초과합니다. nginx.conf 구성 파일에서 FastCGI 시간 초과 시간을 적절하게 늘릴 수 있습니다. 예:

http
{
......
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
......}

더 많은 Nginx 관련 기술 문서를 참조하세요. Nginx 튜토리얼 칼럼에서 배워보세요!

위 내용은 nginx 502 불량 게이트웨이 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.