Nginx 502 плохая ошибка шлюза только в Firefox

я запускаю веб-сайт локально, весь трафик маршрутизируется через NGinx, который затем отправляет запросы на PHP-страницы в Apache и обслуживает статические файлы. Отлично работает в Chrome, Safari, IE и др.

однако всякий раз, когда я открываю веб-сайт в Firefox, я получаю следующую ошибку:

502 Bad Gateway
nginx/0.7.65

Если я очищаю кэш и куки, а затем перезапускаю 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] 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 ответов


Кажется, я нашел работу, которая исправила мою проблему. После некоторых дополнительных исследований Google я добавил следующие строки в свою конфигурацию Nginx:

proxy_buffers 8 16k;
proxy_buffer_size 32k;

однако, я все еще не знаю Почему это сработало, и почему только Firefox, казалось, имел проблемы. Если кто может пролить свет на это, или предложить лучшее решение, это будет высоко ценится!


Если у вас есть firePHP отключить его. Большие заголовки вызывают проблемы во время связи nginx с php.


увеличение размера буферов прокси решает эту проблему. Firefox позволяет большие куки (до 4k каждый), которые прикреплены к каждому запросу. Конфигурация по умолчанию Nginx имеет небольшие буферы (только 4k). Если ваш трафик использует большие куки, вы увидите ошибку "вверх по течению отправлен слишком большой заголовок при чтении заголовка ответа" в журнале ошибок nginx, и Nginx вернет клиенту ошибку http 502. Что произошло, у Nginx закончилось буферное пространство при разборе и обработке запрос.

чтобы решить эту проблему, измените свой сервер nginx.файл conf

proxy_buffers 8 16k; proxy_buffer_size 32к;

или

fastcgi_buffers 8 16k; fastcgi_buffer_size 32k;


открыть /etc/nginx / nginx.conf и добавьте следующие строки в раздел http:

fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;

это исправление работало для меня в веб-приложении CI. подробнее вhttp://www.adminsehow.com/2012/01/fix-nginx-502-bad-gateway-error/