2009-10-03 18 views
7

私たちはphp-fastcgiでNginxでDrupal 5.xを実行しています。 しばらくの間うまくいきました。突然、我々(ユーザー)が502 Bad Gatewayエラーに遭遇しています。 PHP-cgiを再起動すると、nginx ..マシンを再起動するなどの助けになりませんでした。Drupal + Nginx + Php-cgi:502悪いゲートウェイエラー

誰もこのタイプの問題に遭遇しましたか?可能性のある容疑者は何ですか?

+0

php-fastcgi pm.max_childrenサイズの拡張カウント – num8er

答えて

0

通常、私はこれを見つけたとき、PHPのどこかで致命的なエラーが発生しています。あなたのPHP-cgiログを見て、それがそこにあるかどうか確認してください。 nginxのログには次のようなものがあるはずです:104: Connection reset by peer。設定によっては(申し訳ありませんが、リンクが死んでいる)が役に立ちますが、php-fpmを使用している場合は役に立ちません。

3

通常、何らかの理由でPHPが異常終了すると、502エラーが発生します。まず、すべてのログファイルをチェックします。これには、/ var/log /とnginxログのシステム情報が含まれています。

最近の変更を加えておらず、明白な理由で問題が発生したばかりの場合、PHPのメモリが不足している可能性があります。私はそれが空白の画面を与えるApacheモジュールとして起こるときを知っています - もし502エラーがnginxとFastCGIインターフェースの下で起こったら驚くことはありません。これは簡単に修正できます。ini_set( 'memory_limit'、 '256M')をindex.phpに入れて、それが問題を解決するかどうか確認してください。

また、Drupalを使用しないスタンドアロンのPHPファイルを読み込むことはできますか?入れてください<?php phpinfo(); ? >をinfo.phpというファイルに書き込んで、それを打ち、何が起こるかを見てみましょう。

幸運を祈る!サーバが新しいだけでセットアップがある場合

0

問題がちょうど始まった場合..上記読む..それはポートの上でそれも聞いていますかどうかを確認するために、このコマンドを実行してください

netstat -lpn | grep ":9000" 

もちろん、セットアップ急速を持っている可能性がある場合cgiは別のポートで動作するため、そのステートメントのポート9000を探しているポートに置き換えてください。表示されるものが何も表示されない場合は、そのポートでリッスンしていない可能性があります。 。

0

firePHPを使用している場合は無効にしてください。 nginxのPHPとの通信中に大きなヘッダーが発生する

10

今日私はCIプロジェクトで「502 Bad Gateway」を取得していましたが、問題を見つけた後、nginx fastcgiバッファの問題が見つかりました。それ: オープン/etc/nginx/nginx.conf

のhttpセクションに以下の行を追加します。

fastcgi_buffers 8 16k; 
fastcgi_buffer_size 32k; 
+0

また、両方のサービスを再起動するだけでなく、nginxとphp5-fpmも追加しました。 \t fastcgi_connect_timeout 300; \t fastcgi_send_timeout 300; \t fastcgi_read_timeout 300; – zmonteca

2

を私もこのエラーを持って、私は最終的にはすべてのモジュール(非コア)を無効にして有効エラーを引き起こした原因を確認するために1つずつ確認してください。

disable all non-core modulesに簡単にアクセスできます。

0

メモリの容量を増やすと修正されます。 ini_set( 'memory_limit'、 '256M');

0

おそらくPHP 5にアップグレードしたからです。5を使用しているため、2回有効にしたopcodeキャッシュを使用しています。それはphp.iniとopcache.iniをチェックします。

関連する問題