У меня есть этот сервер nginx, работающий на AWS, и он работал нормально до недавнего времени, когда несколько пользователей начали жаловаться на то, что веб-сайт не открывается, пока они не сделали около 10 попыток доступа к нему.
Я никогда не мог воспроизвести проблему со своей стороны. Я использую dns google, т.е. 8.8.8.8, и когда я изменил то же самое для одного из пользователей, сайт работал нормально. Теперь это может быть причиной, а может быть и совпадением.
Я нашел это в журнале ошибок -
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
А кое-где даже это -
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
Примечание. Поместите xx.xxx.xxx.xx для IP-адреса клиента.
Вот конфигурация 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 ...
}
Буду очень признателен за любую помощь.
Спасибо
Судя по журналу, предоставленному вами от Nginx, кажется, что соединения между вашим сервером и пользователями нестабильны или медленны. Пожалуйста попробуйте traceroute
на IP-адрес вашего клиента или его / ее шлюз с вашего сервера. Также, ping
ваш IP-адрес клиента в течение длительного времени, чтобы увидеть скорость потери пакетов и время ответа. MTU может быть еще одним источником этой проблемы. Проверьте, можете ли вы связаться со своим клиентом с MTU = 1500 (Mac: ping -D -s 1472 xx.xx.xx.xx
).
Кстати: если ваш сервер или клиент находится в Китае, эта проблема обычно не ваша вина. Известно, что GFW случайным образом отбрасывает пакеты между границами, чтобы намеренно ухудшить качество международного соединения.
Эти записи журнала похожи на записи, которые появляются, когда я использую такие инструменты, как OpenVAS, для сканирования сервера. Эти инструменты создают плохие соединения, работают медленно или работают плохо; nginx просто сообщает, что какое-то соединение не работает нормально. Если весь трафик исходит из одного источника, является быстрым и не имеет других законных запросов для сопоставления в журнале доступа, скорее всего, это всего лишь бот-сканер.
Эти сканеры также могут загружать ваше приложение, что может замедлить его прохождение другого законного трафика.
Как предполагается в этом комментарии, это, вероятно, ошибка пользователя, и они закрывают соединение (намеренно или нет). Постарайтесь достоверно воспроизвести проблему. Исключите, что это происходит где-то еще, и если это только это место, им нужно будет устранить неполадки на своей стороне. Попробуйте использовать разные браузеры / компьютеры, а затем проверьте надежность сети.