8

我在本地运行一个网站,所有流量都通过 NGinx 路由,然后将请求发送到 PHP 页面到 Apache 并提供静态文件。在 Chrome、Safari、IE 等中完美运行。

但是,每当我在 Firefox 中打开网站时,都会出现以下错误:

502 Bad Gateway
nginx/0.7.65

如果我清除缓存和 cookie,然后重新启动 FireFox,我可以在错误返回之前加载站点一两次。我已经尝试过 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

我似乎找到了解决我问题的方法。经过一些额外的谷歌研究,我在我的 Nginx 配置中添加了以下几行:

proxy_buffers 8 16k;
proxy_buffer_size 32k;

但是,我仍然不知道为什么这有效,为什么只有 Firefox 似乎有问题。如果有人可以阐明这一点,或提供更好的解决方案,将不胜感激!

于 2010-09-14T16:01:09.410 回答
5

如果你有 firePHP 禁用它。nginx 与 php 通信时,大标题会导致问题。

于 2010-10-13T11:57:42.877 回答
3

增加代理缓冲区的大小可以解决这个问题。Firefox 允许附加到每个请求的大型 cookie(每个最多 4k)。Nginx 默认配置有小缓冲区(只有 4k)。如果您的流量使用大 cookie,您将在 nginx 错误日志中看到错误“upstream sent too big header while reading response header”,并且 Nginx 将向客户端返回 http 502 错误。发生的事情是 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;

此修复在 CI Web 应用程序中对我有用。在http://www.adminsehow.com/2012/01/fix-nginx-502-bad-gateway-error/阅读更多内容

于 2012-07-12T13:06:18.503 回答