web-dev-qa-db-ja.com

502 Bad Gateway-Nginx、spawn-fcgi、WordPress

CentOS VPSでいくつかのサイトをホストしていますが、サーバー上のWordPressサイトの1つが502 Bad Gatewayエラーを返し始めるまで、すべてが正常に機能していました。他のサイトは正常に動作します。 BuddyPressプラグインディレクトリの名前を変更するとWordPressサイトが読み込まれますが、このプラグインの何が問題を引き起こしているのかをデバッグする方法がわかりません(プラグインは以前は機能していて更新されていません)。ローカルのApacheインストールを使用すると、まったく同じコード/データベースが正しく機能するため、サーバー構成に固有のようです。このプラグインを使用しないことはオプションではないので、私の質問はサーバー構成をデバッグする方法についてです。

私の構成:

  • CentOS 5.10
  • Nginx 1.60
  • PHP 5.5
  • spawn-fcgi 1.6.3

エラー:

  • ブラウザ

    502 Bad Gateway
    nginx/1.6.0
    
  • Nginx/PHPエラーログ

    2014/06/28 19:40:13 [error] 8146#0: *22994 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 127.0.0.1, server: *.example.com, request: "GET / HTTP/1.0", upstream: "fastcgi://127.0.0.1:53217", Host: "www.example.com"
    2014/06/28 19:40:14 [error] 8146#0: *22980 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 123.123.123.123, server: *.example.com, request: "GET /about/ HTTP/1.1", upstream: "fastcgi://127.0.0.1:53217", Host: "www.example.com", referrer: "https://www.example.com/about/"
    
  • / var/log/messages

    Jun 28 19:40:13 web1 kernel: php-cgi[27053]: segfault at 000000000000002c rip 00000000005bc798 rsp 00007fffc73f0ae0 error 4
    Jun 28 19:40:13 web1 kernel: php-cgi[10559]: segfault at 000000000000002c rip 00000000005bc798 rsp 00007fffc73f0ae0 error 4
    Jun 28 19:40:14 web1 kernel: php-cgi[17410] general protection rip:5bc798 rsp:7fffc73f0ae0 error:0
    

私が試したこと:

  • 確認済みのspawn-fcgiが実行され、リクエストに応答しています(他のサイトは機能しています)
  • php.iniのPHPメモリの増加-1GBのメモリを許可しても同じ効果があります。
  • nginx.confにfastcgiバッファを設定します

    fastcgi_buffering               on;
    fastcgi_buffers                 8 16k;
    fastcgi_buffer_size             32k;
    
1
doublesharp

PHPファイルのnginx.confに次の値を設定することで問題を最終的に修正しました。proxy_*エントリでうまくいくようです。

proxy_buffer_size               128k;
proxy_buffers                   4 256k
proxy_busy_buffers_size         256k;

fastcgi_buffering               on;
fastcgi_buffer_size             16k;
fastcgi_buffers                 16 16k;

もちろん、これと数日間戦った後、投稿後10分以内に問題を解決しました...

1
doublesharp