현재 위치: > 최신 기사 목록> PHP-FPM의 502 불량 게이트웨이 오류에 대한 이유 및 효율적인 솔루션

PHP-FPM의 502 불량 게이트웨이 오류에 대한 이유 및 효율적인 솔루션

gitbox 2025-06-23

PHP-FPM 502 오류 배경

PHP-FPM (FASTCGI Process Manager)은 높은 동시성 환경에서 PHP를위한 중요한 실행 엔진이며 Nginx에서 백엔드 지원으로 널리 사용됩니다. 502 불량 게이트웨이 오류는 일반적으로 NGINX와 PHP-FPM 간의 통신이 중단되거나 비정상적인 반응을 나타냅니다. 이 기사는 여러 측면에서 가능한 이유와 최적화 솔루션을 소개합니다.

1. PHP-FPM 프로세스는 비정상적으로 종료됩니다

하중 시나리오에서 PHP-FPM 프로세스는 자원 소진 또는 부적절한 구성으로 인해 충돌 할 수있어 요청을 처리 할 수 ​​없어서 502 오류가 발생합니다. 프로세스 상태를보고 서비스를 다시 시작할 수 있습니다.

 
$ systemctl status php-fpm
$ systemctl restart php-fpm

2. 프로세스 풀 구성 매개 변수는 불합리합니다

PHP-FPM 프로세스 풀 매개 변수가 잘못 설정되면 Max_Children 설정이 너무 작 으면 요청이 차단되거나 거부 될 수 있습니다. 다음 구성을 확인하고 최적화하는 것이 좋습니다.

 
$ vim /etc/php-fpm.d/www.conf

권장 구성은 다음과 같습니다.

 
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 30
pm.max_requests = 500

3. 처리 요청 시간 초과 처리

대형 파일 처리 또는 복잡한 비즈니스 로직과 같이 PHP 스크립트가 너무 오랫동안 처리되면 기본 시간 초과 설정이 충분하지 않아서 Nginx와의 연결을 방해 할 수 있습니다.

연결 시간 초과는 다음과 같이 확장 할 수 있습니다.

 
$ vim /etc/php-fpm.d/www.conf

설정 제안 :

 
request_terminate_timeout = 180

4. nginx 구성 오류

NGINX 구성 파일의 FASTCGI 경로 또는 매개 변수 설정이 잘못된 경우 요청을 PHP-FPM으로 성공적으로 전달하여 502 오류를 트리거 할 수 없습니다.

nginx.conf 에서 PHP 요청의 위치 구성을 확인하십시오.

 
$ vim /etc/nginx/nginx.conf

구성 올바른 구성 예 :

 
location ~ \.php$ {
    include fastcgi_params;
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

5. 서버 리소스 병목 현상

서버의 메모리 또는 CPU 리소스가 크게 점유 된 경우 PHP-FPM은 요청에 응답 할 새로운 프로세스를 만들 수 없으므로 502 오류가 발생할 수 있습니다.

다음 명령을 통해 서버 리소스 사용을 모니터링 할 수 있습니다.

 
$ top
$ free -m

리소스가 충분하지 않은지 확인하면 코드 및 캐싱 메커니즘을 최적화하여 하드웨어 구성을 업그레이드하거나 리소스 소비를 줄일 수 있습니다.

요약

PHP-FPM 502 오류를 해결하려면 프로세스 상태, 구성 매개 변수, 요청 처리 시간, NGINX와 PHP-FPM 간의 통신 경로 및 서버 자체의 리소스 사용을 종합적으로 고려해야합니다. 합리적인 구성 및 리소스 최적화를 통해 502 오류를 피할 수있을뿐만 아니라 전반적인 서비스 안정성 및 응답 속도도 개선 될 수 있습니다.