Ошибка Nginx 502 Bad Gateway ТОЛЬКО в Firefox - PullRequest
8 голосов
/ 14 сентября 2010

Я работаю на веб-сайте локально, весь трафик направляется через NGinx, который затем отправляет запросы на страницы PHP в Apache и обслуживает статические файлы.Прекрасно работает в Chrome, Safari, IE и т.д.затем перезапустите 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 ]

11 голосов
/ 14 сентября 2010

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

proxy_buffers 8 16k;
proxy_buffer_size 32k;

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

5 голосов
/ 13 октября 2010

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

3 голосов
/ 05 июня 2013

Увеличение размера ваших прокси-буферов решает эту проблему. Firefox допускает большие куки (до 4 Кб каждый), которые прикрепляются к каждому запросу. Конфигурация по умолчанию в Nginx имеет небольшие буферы (всего 4 Кб). Если ваш трафик использует большие файлы cookie, вы увидите сообщение об ошибке «отправил слишком большой заголовок при чтении заголовка ответа», и Nginx вернет ошибку http 502 клиенту. В Nginx не хватило места в буфере при разборе и обработке запроса.

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

proxy_buffers 8 16k; proxy_buffer_size 32k;

-или-

fastcgi_buffers 8 16k; fastcgi_buffer_size 32k;

0 голосов
/ 12 июля 2012

Откройте /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/

...