現在の位置: ホーム> 最新記事一覧> 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パスまたはパラメーター設定が正しくない場合、要求を正常に渡すことができず、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のエラーを回避できるだけでなく、全体的なサービスの安定性と応答速度も改善できます。