Question

Je gère un site web local, tout le trafic est acheminé par Nginx qui envoie alors les requêtes vers des pages PHP pour Apache et sert des fichiers statiques. Fonctionne parfaitement dans Chrome, Safari, Internet Explorer, etc.

Cependant, chaque fois que j'ouvre le site Web dans Firefox Je l'erreur suivante:

502 Bad Gateway
nginx/0.7.65

Si je vider le cache et les cookies, puis redémarrez FireFox, je suis en mesure de charger le site une ou deux fois avant le retour d'erreur. Je l'ai essayé à la fois Firefox 3.6 et 3.5 et les deux ont le même problème.

Voici ce que mes config Nginx ressemble:

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; 
 }
}

Et voici les erreurs que Firefox génère dans mon fichier 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

Je suis tout à fait à une perte pourquoi un navigateur provoquerait une erreur de serveur. aider quelqu'un peut?

Était-ce utile?

La solution

il me semble avoir trouvé un travail autour de ce problème résolu mon. Après quelques recherches Google supplémentaires, j'ai ajouté les lignes suivantes dans ma config Nginx:

proxy_buffers 8 16k;
proxy_buffer_size 32k;

Par contre, je ne sais toujours pas pourquoi et pourquoi cela a fonctionné que Firefox semblait avoir des problèmes. Si quelqu'un peut faire la lumière sur ce sujet, ou d'offrir une meilleure solution, il serait très apprécié!

Autres conseils

Si vous avez FirePHP le désactiver. têtes Big provoque des problèmes tout en nginx avec php comunication.

L'augmentation de la taille de vos tampons proxy résout ce problème. Firefox permet à de grands cookies (jusqu'à 4k chacun) qui sont attachés à chaque demande. La configuration par défaut Nginx a de petits tampons (uniquement 4k). Si votre trafic utilise de grands cookies, vous verrez l'erreur « en amont envoyé en-tête trop grand lors de la lecture en-tête de réponse » dans votre journal des erreurs de nginx et Nginx renvoie une erreur http 502 au client. Ce qui est arrivé est Nginx a manqué d'espace tampon lors de l'analyse et de traitement de la demande.

Pour résoudre ce problème, modifiez votre fichier nginx.conf

proxy_buffers 8 16k; proxy_buffer_size 32k;

-ou-

fastcgi_buffers 8 16k; fastcgi_buffer_size 32k;

/etc/nginx/nginx.conf ouvert et ajoutez les lignes suivantes dans la section http:

fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;

Ce correctif a fonctionné pour moi dans une application Web de CI. En savoir plus sur http://www.adminsehow.com / 2012/01 / fix-nginx-502-bad-passerelle erreur /

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top