nginx: nessun live upstream mentre si collega a monte

502 l'errore errato del gateway viene visualizzato quando si passa da pagine del sito e alcune volte alla home page, ma non per la prima richiesta nella home page è solo quando un'altra pagina si reindirizza. e succede per alcuni file javascript

il bilanciamento del carico configurato su due upstream php1 php2 sono entrambi server apache.

Quando ho controllato l'errore log i fond:

no live upstreams while connecting to upstream [error] 27212#0: *314 no live upstreams while connecting to upstream, client: ip_address , server: example.com, request: "GET / HTTP/1.1", upstream: "http://example.com", host: "example.com", referrer: "http://example.com/mypages/" 

e questa è la configuration del server di bilanciamento del carico

  upstream example.com { # ip_hash; server php01 max_fails=3 fail_timeout=15s; server php02 max_fails=3 fail_timeout=15s; } server { listen IP:80; server_name example.com; access_log /var/log/nginx/example.com.access; error_log /var/log/nginx/example.com.error error; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://$server_name/$uri; proxy_cache_bypass $cookie_nocache $arg_nocache $arg_comment; proxy_cache_bypass $http_pragma $http_authorization; proxy_no_cache $cookie_nocache $arg_nocache $arg_comment; proxy_no_cache $http_pragma $http_authorization; } } 

Ho cercato ore e niente di utile trovato i miei flussi sono in su e nessun problema con loro.

  • Indirizzo resolver Nginx da /etc/resolv.conf
  • Quali sono i diversi usi dei siti disponibili rispetto alla directory conf.d per nginx
  • Fisheye + Nginx Reverse Proxy
  • Nginx bilanciamento del carico con server dedicato php-fpm
  • C'è un modo per rilevare quando nginx ha completato un arresto grazioso?
  • Nginx + PHP FASTCGI FAILS - come eseguire il debug?
  • Compilare nginx con nginx-gridfs, ottenendo errori di mongo-c durante il make
  • php-fpm: contribuisce a comprendere start_servers, min_spare_servers, max_spare_servers
  • 2 Solutions collect form web for “nginx: nessun live upstream mentre si collega a monte”

    Questo non è un problema con Nginx, è un problema con i tuoi backend PHP che non rispondono in tempo. È ansible aggiungere la logging a Nginx per confermare questo .

    Come un secondo punto di riferimento, è ansible top al server e verificare manualmente se PHP sta sbattere la CPU per periodi di tempo, un altro indicatore di risposte lente.

    Se le risposte molto lente da PHP sono OK con te, puoi chiedere a Nginx di aspettare di più prima di rinunciare:

      # Wait 5 minutes before giving up on the backend! proxy_read_timeout 5m; 

    Esaminando i registri con le informazioni di temporizzazione collegate sopra, è necessario essere in grado di capire quali richieste sono lente per il process di PHP.

    Per limitare il problema, submit queste richieste direttamente al backend di PHP.

    A seconda di ciò che sta accadendo, potrebbe anche essere ansible abilitare la cache di alcune richieste in Nginx evitando alcune delle richieste lente.

    Rinomina l'upstream a "up_example.com" e cambia

     proxy_pass http://$server_name/$uri; 

    essere

     proxy_pass http://up_$server_name$uri; 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.