8

私はローカルでWebサイトを実行していますが、すべてのトラフィックはNGinxを介してルーティングされ、NGinxはPHPページへのリクエストをApacheにディスパッチし、静的ファイルを提供します。Chrome、Safari、IEなどで完全に機能します。

ただし、FirefoxでWebサイトを開くと、次のエラーが発生します。

502 Bad Gateway
nginx/0.7.65

キャッシュとCookieをクリアしてからFireFoxを再起動すると、エラーが返される前にサイトを1回または2回ロードできます。Firefox 3.6と3.5の両方を試しましたが、どちらも同じ問題があります。

Nginxの設定は次のようになります。

worker_processes  2;

events {
    worker_connections  1024;
}


http {

 server {
     listen        80;
     server_name   local.mysite.amc;
     root          /Users/joshmaker/Sites/mysite;

  error_log  /var/log/nginx/error.log;
  access_log  /var/log/nginx/access.log;

     location / {
         proxy_set_header Host $host;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_pass http://local.mysite.amc:8080;
     }

  include /opt/local/etc/nginx/rewrite.txt;
 }
 server {  
  include /opt/local/etc/nginx/mime.types;

     listen        80;
     server_name   local.static.mysite.amc;
     root          /Users/joshmaker/Sites/mysite;

  error_log  /var/log/nginx/error.log;
  access_log  /var/log/nginx/access.log; 
 }
}

そして、Firefoxがerror.logファイルで生成するエラーは次のとおりです。

[error] 11013#0: *26 kevent() reported that connect() failed (61: Connection refused) while connecting to upstream     
[error] 11013#0: *30 upstream sent too big header while reading response header from upstream
[error] 11013#0: *30 no live upstreams while connecting to upstream

ブラウザがサーバーエラーを引き起こす理由は完全に途方に暮れています。誰かが助けることができますか?

4

4 に答える 4

12

問題を解決する回避策を見つけたようです。Googleでさらに調査した後、Nginx構成に次の行を追加しました。

proxy_buffers 8 16k;
proxy_buffer_size 32k;

しかし、なぜこれが機能したのか、Firefoxだけが問題を抱えているように見えたのかはまだわかりません。誰かがこれに光を当てることができるか、より良い解決策を提供することができれば、それは大いにありがたいです!

于 2010-09-14T16:01:09.410 に答える
5

firePHPを使用している場合は、無効にしてください。大きなヘッダーは、phpとのnginx通信中に問題を引き起こします。

于 2010-10-13T11:57:42.877 に答える
3

プロキシバッファのサイズを大きくすると、この問題が解決します。Firefoxでは、すべてのリクエストに添付される大きなCookie(それぞれ最大4k)を使用できます。Nginxのデフォルト設定には小さなバッファがあります(4kのみ)。トラフィックが大きなCookieを使用している場合、nginxエラーログに「アップストリームが応答ヘッダーの読み取り中に送信されたヘッダーが大きすぎます」というエラーが表示され、Nginxはhttp502エラーをクライアントに返します。何が起こったのかというと、リクエストの解析と処理中にNginxがバッファスペースを使い果たしました。

これを解決するには、nginx.confファイルを変更します

proxy_buffers 8 16k; proxy_buffer_size 32k;

-また-

fastcgi_buffers 8 16k; fastcgi_buffer_size 32k;

于 2013-06-05T19:05:53.887 に答える
0

/etc/nginx/nginx.confを開き、httpセクションに次の行を追加します。

fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;

この修正は、CIWebアプリケーションで機能しました。詳細については、 http://www.adminsehow.com/2012/01/fix-nginx-502-bad-gateway-error/をご覧ください。

于 2012-07-12T13:06:18.503 に答える