仅在Firefox中出现Nginx 502 Bad Gateway错误

时间:2010-09-13 21:40:59

标签: firefox nginx server-administration

我在本地运行一个网站,所有流量都通过NGinx路由,然后NGinx将请求发送到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 个答案:

答案 0 :(得分:11)

我似乎找到了解决问题的方法。在进行了一些额外的Google研究之后,我将以下几行添加到我的Nginx配置中:

proxy_buffers 8 16k;
proxy_buffer_size 32k;

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

答案 1 :(得分:5)

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

答案 2 :(得分:3)

增加代理缓冲区的大小可以解决此问题。 Firefox允许附加到每个请求的大型cookie(每个最多4k)。 Nginx默认配置有小缓冲区(仅4k)。如果您的流量使用大cookie,您将在nginx错误日志中看到错误“上游在读取响应头时发送了太大的头”,并且Nginx将向客户端返回http 502错误。发生了什么事,Nginx在解析和处理请求时耗尽了缓冲区空间。

要解决此问题,请更改您的nginx.conf文件

proxy_buffers 8 16k; proxy_buffer_size 32k;

- 或 -

fastcgi_buffers 8 16k; fastcgi_buffer_size 32k;

答案 3 :(得分: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/

了解更多信息