timeout della connessione nginx e problema di connessione chiusa del client


21

Ho questo server nginx in esecuzione su AWS e funzionava benissimo fino a poco tempo fa quando una coppia di utenti ha iniziato a lamentarsi del fatto che il sito Web non si apriva fino a quando non hanno fatto 10 tentativi per accedervi.

Non sono mai stato in grado di riproporre il problema dalla mia parte. Sto usando il DNS di Google, ovvero 8.8.8.8 e quando ho cambiato lo stesso per uno degli utenti, il sito funzionava bene. Ora questa può essere la ragione o anche questa può essere solo una coincidenza.

Ho trovato questo nel registro degli errori -

2014/05/29 13:46:15 [info] 6940#0: *150649 client timed out (110: Connection timed out) while waiting for request, client: xx.xxx.xxx.xx, server: 0.0.0.0:80
2014/05/29 13:46:20 [info] 6940#0: *150670 client closed connection while waiting for request, client: xx.xxx.xxx.xx, server: 0.0.0.0:80
2014/05/29 13:46:20 [info] 6940#0: *150653 client closed connection while waiting for request, client: xx.xxx.xxx.xx, server: 0.0.0.0:80
2014/05/29 13:46:20 [info] 6940#0: *150652 client closed connection while waiting for request, client: xx.xxx.xxx.xx, server: 0.0.0.0:80

E alcuni posti anche questo -

2014/05/29 13:46:53 [info] 6940#0: *150665 client closed connection while waiting for request, client: xx.xxx.xxx.xx, server: 0.0.0.0:80
2014/05/29 13:46:53 [info] 6940#0: *150660 client xx.xxx.xxx.xx closed keepalive connection

Nota: sono stati inseriti xx.xxx.xxx.xx per l'IP client

Ecco la configurazione di nginx -

server {
    listen       80;
    server_name  somedomain.com  www.somedomain.com;

    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;

    root        /var/www/somedomain/current/app/webroot;
    index       index.php index.html index.htm;

    ... couple of location rules ...
}

Gradirei davvero qualsiasi aiuto.

Grazie


1
Questo potrebbe essere un problema con la connessione degli sviluppatori al server, non al server. Poiché non è possibile ricreare il problema e il server stesso sta registrando un timeout della connessione client, è necessario sospettare che lo sviluppatore potrebbe essere protetto da un firewall e che abbiano problemi di rete interni che lo causano.
Andrew S,

Puoi provare a disabilitare Keep-Alive proprio come test per questo problema. Non sono sicuro del traffico che colpisce il tuo server web, ma Keep-Alive potrebbe farti raggiungere il limite di concorrenza nella tua configurazione nginx. Ecco maggiori informazioni: nginx.com/blog/http-keepalives-and-web-performance
Alfonso

1
@NitishDhar Hai risolto questo problema? Sto anche affrontando lo stesso problema e solo all'oscuro. Saremo felici se puoi condividere la soluzione.
Ethan Collins,

2
Domande: il server si trova dietro un bilanciamento del carico o un firewall? NAT è coinvolto? Esiste un tunnel di qualsiasi tipo tra il server e Internet? Il motivo per cui chiedo è che questo suona come il genere di cose che accadono quando c'è un tunnel da qualche parte nel percorso e qualcuno ha bloccato tutto l'ICMP che interrompe la scoperta di Path MTU.
George B

Inoltre, qual è l'output di cat / proc / sys / net / ipv4 / tcp_mtu_probing
GeorgeB

Risposte:


6

Sulla base del registro fornito da Nginx, sembra che le connessioni tra il tuo server e gli utenti siano instabili o lente. Prova traceroutea inserire l'indirizzo IP del tuo client o il suo gateway dal tuo server. Inoltre, pingl'indirizzo IP del client per molto tempo per visualizzare il tasso di perdita dei pacchetti e i tempi di risposta. MTU potrebbe essere un'altra fonte di questo problema. Verifica se riesci a raggiungere il tuo client con MTU = 1500 (Mac:) ping -D -s 1472 xx.xx.xx.xx.

A proposito: se il tuo server o client risiede in Cina, questo problema di solito non è colpa tua. GFW è noto per scartare casualmente i pacchetti tra confine per peggiorare intenzionalmente la qualità della connessione internazionale.


fyi, GFW = Great Firewall of China.
Roshan,

0

Come speculato in quel commento, è probabilmente un errore dell'utente e stanno chiudendo la connessione (intenzionalmente o no). Prova a riprodurre il problema in modo affidabile. Escludere che accada altrove e se è solo quella posizione, dovranno risolvere i problemi alla fine. Prova da diversi browser / computer e quindi verifica l'affidabilità della rete.


0

Queste voci di registro sono simili alle voci visualizzate quando utilizzo strumenti come OpenVAS per eseguire la scansione di un server. Questi strumenti creano connessioni errate, rallentano o funzionano diversamente; nginx sta solo segnalando che alcune connessioni non funzionavano bene. Se tutto il traffico proviene dalla stessa fonte ed è rapido e non ha altre richieste legittime da abbinare nel registro di accesso, è probabilmente solo un tipo di bot-scanner.

Questi scanner potrebbero anche caricare la tua applicazione, rallentando il traffico legittimo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.