Mam ten serwer Nginx działający na AWS i działał dobrze do niedawna, kiedy kilku użytkowników zaczęło narzekać na to, że strona się nie otwiera, dopóki nie podjęli około 10 prób uzyskania do niej dostępu.
Nigdy nie byłem w stanie rozwiązać problemu z mojej strony. Korzystam z dns Google'a, tj. 8.8.8.8, a kiedy zmieniłem to samo dla jednego z użytkowników, strona działała dobrze. To może być powód lub może to być tylko zbieg okoliczności.
Znalazłem to w dzienniku błędów -
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
A niektóre miejsca nawet to -
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
Uwaga - Umieściłem xx.xxx.xxx.xx dla adresu IP clien't
Oto konfiguracja 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 ...
}
Naprawdę doceniłbym każdą pomoc.
Dzięki
Odpowiedzi:
Na podstawie dziennika dostarczonego przez Nginx wydaje się, że połączenia między twoim serwerem a użytkownikami są niestabilne lub wolne. Spróbuj
traceroute
podać adres IP klienta lub jego bramę z serwera. Ponadtoping
twój adres IP klienta przez długi czas, aby zobaczyć współczynnik utraty pakietów i czas odpowiedzi. MTU może być kolejnym źródłem tego problemu. Sprawdź, czy możesz skontaktować się z klientem za pomocą MTU = 1500 (Mac:)ping -D -s 1472 xx.xx.xx.xx
.BTW: Jeśli twój serwer lub klient mieszka w Chinach, ten problem zwykle nie jest twoją winą. Wiadomo, że GFW losowo odrzuca pakiety między granicami, aby celowo pogorszyć jakość połączenia międzynarodowego.
źródło
Jak spekulowano w tym komentarzu, prawdopodobnie jest to błąd użytkownika i zamykają połączenie (celowo lub nie). Spróbuj rzetelnie odtworzyć problem. Wyklucz to, że dzieje się to gdzie indziej, a jeśli to tylko ta lokalizacja, będą musieli rozwiązać problemy na swoim końcu. Spróbuj z różnych przeglądarek / komputerów, a następnie przetestuj niezawodność sieci.
źródło
Te wpisy dziennika wyglądają podobnie do wpisów wyświetlanych, gdy skanuję serwer przy użyciu narzędzi takich jak OpenVAS. Narzędzia te tworzą złe połączenia, działają wolno lub w inny sposób źle działają; nginx właśnie zgłasza, że pewne połączenie nie grało dobrze. Jeśli cały ruch pochodzi z tego samego źródła i jest szybki i nie ma innych prawidłowych żądań do dopasowania w dzienniku dostępu, prawdopodobnie jest to coś w rodzaju skanera botów.
Te skanery mogą również obciążać twoją aplikację, co może spowolnić inny legalny ruch.
źródło