Domanda

Sono in esecuzione di un sito web locale, tutto il traffico viene instradato attraverso nginx che poi invia le richieste di pagine PHP per Apache e serve file statici. Funziona perfettamente in Chrome, Safari, IE, ecc.

Tuttavia, ogni volta che apro il sito web in Firefox ottengo il seguente errore:

502 Bad Gateway
nginx/0.7.65

Se a svuotare le cache ei cookie, e poi riavviare Firefox, sono in grado di caricare il sito una volta o due volte prima l'errore si ripresenta. Ho provato sia Firefox 3.6 e 3.5 ed entrambi hanno lo stesso problema.

Ecco quello che i miei Nginx aspetto di configurazione come:

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

Ed ecco gli errori che Firefox genera nel mio file 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

Sono completamente in perdita perché un browser dovrebbe causare un errore del server. Qualcuno può aiutarmi?

È stato utile?

Soluzione

mi sembra di aver trovato un modo per aggirare che risolto il mio problema. Dopo qualche ulteriore ricerca di Google, ho aggiunto le seguenti righe al mio config Nginx:

proxy_buffers 8 16k;
proxy_buffer_size 32k;

Comunque, io ancora non so perché questo ha funzionato e perché solo Firefox sembrava avere problemi. Se qualcuno può far luce su questo, o offrire una soluzione migliore, che sarebbe molto apprezzato!

Altri suggerimenti

Se avete FirePHP disattivarlo. Grandi intestazioni causa problemi mentre comunication nginx con PHP.

L'aumento delle dimensioni dei vostri buffer di proxy risolve questo problema. Firefox permette grandi biscotti (fino a 4k ciascuno) che sono attaccati ad ogni richiesta. La configurazione di default Nginx ha piccoli buffer (solo 4K). Se il traffico utilizza grandi cookie, verrà visualizzato l'errore "a monte inviato troppo grande colpo di testa durante la lettura intestazione della risposta" nel log degli errori nginx, e Nginx restituirà un errore HTTP 502 al client. Quello che è successo è Nginx ha esaurito lo spazio di buffer durante l'analisi e l'elaborazione della richiesta.

Per risolvere questo problema, modificare il file nginx.conf

proxy_buffers 8 16k; proxy_buffer_size 32k;

oppure

fastcgi_buffers 8 16k; fastcgi_buffer_size 32k;

/etc/nginx/nginx.conf aperto e aggiungere le seguenti righe nella sezione http:

fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;

Questa correzione ha lavorato per me in un'applicazione CI web. Per saperne di più a http://www.adminsehow.com / 2012/01 / fix-nginx-502-bad-Gateway-error /

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top