web-dev-qa-db-fra.com

délai d'expiration de la connexion nginx et problème de connexion fermée du client

J'ai ce serveur nginx en cours d'exécution sur AWS et cela fonctionnait très bien jusqu'à récemment, lorsque quelques utilisateurs ont commencé à se plaindre du fait que le site Web ne s'ouvrait pas avant d'avoir fait environ 10 tentatives pour y accéder.

Je n'ai jamais pu reprocher le problème de mon côté. J'utilise le DNS de Google, c'est-à-dire 8.8.8.8 et quand j'ai changé la même chose pour l'un des utilisateurs, le site fonctionnait bien. Maintenant, cela peut être la raison ou cela peut aussi être juste une coïncidence.

J'ai trouvé cela dans le journal des erreurs -

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

Et certains endroits même cela -

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

Remarque - Avoir placé xx.xxx.xxx.xx pour le clien't IP

Voici la configuration de 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 ...
}

J'apprécierais vraiment toute aide.

Merci

23
Nitish Dhar

D'après le journal fourni par Nginx, il semble que les connexions entre votre serveur et les utilisateurs soient instables ou lentes. Veuillez essayer traceroute pour l'adresse IP de votre client ou sa passerelle depuis votre serveur. En outre, ping votre adresse IP cliente pendant une longue période pour voir le taux de perte de paquets et le temps de réponse. MTU peut être une autre source de ce problème. Testez si vous pouvez joindre votre client avec MTU = 1500 (Mac: ping -D -s 1472 xx.xx.xx.xx).

BTW: Si votre serveur ou client réside en Chine, ce problème n'est généralement pas de votre faute. GFW est connu pour rejeter au hasard les paquets entre les frontières pour aggraver intentionnellement la qualité de la connexion internationale.

6
Lingfeng Xiong

Ces entrées de journal ressemblent aux entrées qui s'affichent lorsque j'utilise des outils comme OpenVAS pour analyser un serveur. Ces outils établissent de mauvaises connexions, ralentissent ou fonctionnent mal; nginx vient de signaler qu'une connexion ne jouait pas à Nice. Si tout le trafic provient de la même source, est rapide et n'a pas d'autres demandes légitimes à faire correspondre dans le journal d'accès, c'est probablement juste une sorte de bot-scanner.

Ces scanners pourraient également mettre votre application sous charge, ce qui pourrait la ralentir pour d'autres trafics légitimes.

0
edoceo

Comme spéculé dans ce commentaire, il s'agit probablement d'une erreur de l'utilisateur et ils ferment la connexion (intentionnellement ou non). Essayez de reproduire le problème de manière fiable. Excluez que cela se produise ailleurs et si ce n'est que cet endroit, ils devront dépanner de leur côté. Essayez à partir de différents navigateurs/ordinateurs, puis testez la fiabilité du réseau.

0
Peter