it-swarm.com.de

Zeitlimit für Nginx-Verbindung und Problem mit geschlossener Clientverbindung

Ich habe diesen Nginx-Server unter AWS ausgeführt und er hat bis vor kurzem einwandfrei funktioniert, als sich einige Benutzer darüber beschwerten, dass die Website erst geöffnet wird, wenn sie 10 Versuche unternommen haben, darauf zuzugreifen.

Ich konnte das Problem von meiner Seite aus nie wiedergeben. Ich verwende Googles DNS, d. H. 8.8.8.8. Als ich dasselbe für einen der Benutzer änderte, funktionierte die Website einwandfrei. Dies kann der Grund sein oder auch nur ein Zufall.

Ich habe dies im Fehlerprotokoll gefunden -

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

nd an manchen Stellen sogar das -

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

Hinweis: Haben xx.xxx.xxx.xx für die Clien't IP platziert

Hier ist die Nginx-Konfiguration -

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

Ich würde mich über jede Hilfe sehr freuen.

Vielen Dank

23
Nitish Dhar

Basierend auf dem von Nginx bereitgestellten Protokoll scheinen die Verbindungen zwischen Ihrem Server und den Benutzern instabil oder langsam zu sein. Bitte versuchen Sie traceroute von Ihrem Server aus an Ihre Client-IP-Adresse oder sein Gateway zu senden. Außerdem ping Ihre Client-IP-Adresse für eine lange Zeit, um die Paketverlustrate und die Antwortzeit zu sehen. MTU kann eine weitere Ursache für dieses Problem sein. Testen Sie, ob Sie Ihren Client mit MTU = 1500 erreichen können (Mac: ping -D -s 1472 xx.xx.xx.xx).

Übrigens: Wenn sich Ihr Server oder Client in China befindet, ist dieses Problem normalerweise nicht Ihre Schuld. Es ist bekannt, dass GFW Pakete zwischen Grenzen zufällig verwirft, um die internationale Verbindungsqualität absichtlich zu verschlechtern.

6
Lingfeng Xiong

Diese Protokolleinträge ähneln Einträgen, die angezeigt werden, wenn ich Tools wie OpenVAS zum Scannen eines Servers verwende. Diese Tools stellen schlechte Verbindungen her, gehen langsam oder arbeiten auf andere Weise schlecht. nginx meldet nur, dass eine Verbindung nicht Nizza gespielt hat. Wenn der gesamte Datenverkehr von derselben Quelle stammt, schnell ist und keine anderen legitimen Anforderungen im Zugriffsprotokoll vorhanden sind, handelt es sich wahrscheinlich nur um eine Art Bot-Scanner.

Diese Scanner könnten Ihre Anwendung auch unter Last setzen, was sie für anderen legitimen Datenverkehr verlangsamen könnte.

0
edoceo

Wie in diesem Kommentar spekuliert, handelt es sich wahrscheinlich um einen Benutzerfehler, und sie schließen die Verbindung (ob absichtlich oder nicht). Versuchen Sie, das Problem zuverlässig zu reproduzieren. Schließen Sie es aus, dass es anderswo passiert, und wenn es nur dieser Ort ist, müssen sie am Ende Fehler beheben. Versuchen Sie es mit verschiedenen Browsern/Computern und testen Sie dann die Netzwerkzuverlässigkeit.

0
Peter