Назад | Перейти на главную страницу

Тайм-аут соединения nginx и проблема с закрытым соединением клиента

У меня есть этот сервер 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 просто сообщает, что какое-то соединение не работает нормально. Если весь трафик исходит из одного источника, является быстрым и не имеет других законных запросов для сопоставления в журнале доступа, скорее всего, это всего лишь бот-сканер.

Эти сканеры также могут загружать ваше приложение, что может замедлить его прохождение другого законного трафика.

Как предполагается в этом комментарии, это, вероятно, ошибка пользователя, и они закрывают соединение (намеренно или нет). Постарайтесь достоверно воспроизвести проблему. Исключите, что это происходит где-то еще, и если это только это место, им нужно будет устранить неполадки на своей стороне. Попробуйте использовать разные браузеры / компьютеры, а затем проверьте надежность сети.