nginx errors "recv() failed (104: Connection reset by peer) while reading response header from upstream"

Jeg har en server som fungerte ok frem til 3. oktober 2013 kl. 10:50 da den begynte å returnere "502 Bad Gateway" feil til klienten.

Omtrent 4 av 5 nettleserforespørsler lykkes, men omtrent 1 av 5 mislykkes med en 502.

Nginx-feilloggen inneholder mange hundre slike feil;

2013/10/05 06:28:17 [error] 3111#0: *54528 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 66.249.66.75, server: www.bec-components.co.uk  request: ""GET /?_n=Fridgefreezer/Hotpoint/8591P;_i=x8078 HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.bec-components.co.uk"

PHP-feilloggen inneholder imidlertid ingen tilsvarende feil.

**Er det mulig å få PHP til å gi meg mer informasjon om hvorfor den tilbakestiller tilkoblingen?

Dette er nginx.conf;

user              www-data;
worker_processes  4;
error_log         /var/log/nginx/error.log;
pid               /var/run/nginx.pid;

events {
   worker_connections  1024;
}

http {
  include          /etc/nginx/mime.types;
  access_log       /var/log/nginx/access.log;

  sendfile               on;
  keepalive_timeout      30;
  tcp_nodelay            on;
  client_max_body_size   100m;

  gzip         on;
  gzip_types   text/plain application/xml text/javascript application/x-javascript text/css;
  gzip_disable "MSIE [1-6]\.(?!.*SV1)";

  include /gvol/sites/*/nginx.conf;

}

Og dette er .conf for dette nettstedet;

server {

  server_name   www.bec-components.co.uk bec3.uk.to bec4.uk.to bec.home;
  root          /gvol/sites/bec/www/;
  index         index.php index.html;

  location ~ \.(js|css|png|jpg|jpeg|gif|ico)$ {
    expires        2592000;   # 30 days
    log_not_found  off;
  }

  ## Trigger client to download instead of display '.xml' files.
  location ~ \.xml$ {
    add_header Content-disposition "attachment; filename=$1";
  }

   location ~ \.php$ {
      fastcgi_read_timeout  3600;
      include               /etc/nginx/fastcgi_params;
      keepalive_timeout     0;
      fastcgi_param         SCRIPT_FILENAME  $document_root$fastcgi_script_name;
      fastcgi_pass          127.0.0.1:9000;
      fastcgi_index         index.php;
   }
}

## bec-components.co.uk ##
server {
   server_name   bec-components.co.uk;
   rewrite       ^/(.*) http://www.bec-components.co.uk$1 permanent;
}
Løsning

Jeg stoler alltid på at webserverne mine forteller meg: 502 Bad Gateway.

  • hva er oppetiden til din fastcgi/nginx - prosess?
  • overvåker du nettverkstilkoblinger?
  • kan du bekrefte/avkrefte en endring i antall besøkende rundt den dagen?

hva betyr det?

  • din fastcgi-prosess er ikke tilgjengelig for nginx; enten for treg eller ikke korresponderende i det hele tatt. dårlig gateway betyr: nginx kan ikke fastcgi_pass til den definerte ressursen 127.0.0.1:9000; i akkurat det øyeblikket.

  • din innledende feillogg forteller alt:

.

recv() failed 
    -> nginx failed

(104: Connection reset by peer) while reading response header from upstream, 
    -> no complete answer, or no answer at all
upstream: "fastcgi://127.0.0.1:9000", 
    -> who is he, who failed???

fra min begrensede pov jeg'd foreslå:

  • start fastcgi_prosessen / serveren på nytt
  • sjekk tilgangsloggen din
  • aktiver feilsøkingsloggen
Kommentarer (4)

Det kan være lurt å vurdere dette git på github: https://gist.github.com/amichaelgrant/90d99d7d5d48bf8fd209

Jeg støtte på en lignende situasjon, da jeg sjekket feillogger for oppstrømsserverne mine, rapporterte de en ulimit-feil, så jeg økte den til 1000000 (på både oppstrøms- og nginx-boksene) og alt fungerte bra

Kommentarer (0)

I mitt tilfelle av samme problem startet jeg bare php-fpm -tjenesten på nytt, så det løste seg.

sudo service php5-fpm restart

Eller noen ganger skjer dette problemet på grunn av mange forespørsler. Som standard er pm.max_requests i php5-fpm kanskje 100 eller lavere.

For å løse det kan du øke verdien avhengig av nettstedets forespørsler, for eksempel 500.

Deretter må du starte tjenesten på nytt.

Kommentarer (0)