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