Час очікування з'єднання nginx та проблема закритого з'єднання з клієнтом


21

У мене цей сервер 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 ...
}

Я дуже вдячний за будь-яку допомогу.

Спасибі


1
Це може бути проблемою з підключенням розробника до сервера, а не з сервером. Оскільки ви не можете відтворити проблему, а сам сервер реєструє час очікування з'єднання з клієнтом, нам потрібно підозрювати, що розробник може стояти за брандмауером, і у них виникають проблеми з внутрішньою мережею.
Andrew S

Ви можете спробувати відключити Keep-Alive лише як тест на цю проблему. Я не впевнений, що трафік, що потрапляє на ваш веб-сервер, але Keep-Alive може спричинити вас, щоб досягти межі сумісності у вашому конфігурації nginx. Ось додаткова інформація: nginx.com/blog/http-keepalives-and-web-performance
Альфонсо

1
@NitishDhar Ви вирішили цю проблему? Я також стикаюся з тим самим питанням і просто незрозумілим. Будемо раді, якщо зможете поділитися рішенням.
Етан Коллінз

2
Запитання: чи стоїть сервер за балансиром навантаження або брандмауером? Чи задіяний NAT? Чи існує якийсь тунель між сервером та Інтернетом? Причина, яку я запитую, полягає в тому, що це звучить як щось подібне, що відбувається, коли десь на шляху є тунель, і хтось заблокував усі ICMP, які порушують відкриття Шляху MTU.
GeorgeB

Також, що є результатом cat / proc / sys / net / ipv4 / tcp_mtu_probing
GeorgeB

Відповіді:


6

На основі журналу, який ви надали від Nginx, здається, що зв’язки між вашим сервером та користувачами нестабільні або повільні. Спробуйте tracerouteвказати IP-адресу свого клієнта або його шлюз на вашому сервері. Також pingIP-адресу вашого клієнта протягом тривалого часу, щоб побачити швидкість втрати пакету та час відповіді. MTU може бути ще одним джерелом цієї проблеми. Перевірте, чи зможете ви отримати клієнта за допомогою MTU = 1500 (Mac:) ping -D -s 1472 xx.xx.xx.xx.

BTW: Якщо ваш сервер або клієнт проживає в Китаї, зазвичай ця проблема не з вашої вини. Відомо, що GFW випадково відкидає пакети між кордоном, щоб навмисно погіршити якість міжнародного зв'язку.


fyi, GFW = Великий Брандмауер Китаю.
Рошань

0

Як зазначається в цьому коментарі, ймовірно, помилка користувача, і вони закривають з'єднання (навмисно чи ні). Спробуйте надійно відтворити проблему. Виключіть, що це відбувається в іншому місці, і якщо це лише те місце, їм потрібно буде усунути неполадки в їх кінці. Спробуйте в різних браузерах / комп’ютерах, а потім протестуйте надійність мережі.


0

Ці записи в журналі схожі на записи, які з’являються, коли я використовую такі інструменти, як OpenVAS для сканування сервера. Ці інструменти роблять погані зв’язки, працюють повільно або погано працюють; nginx просто повідомляє, що якесь з'єднання не грає добре. Якщо весь трафік є з одного джерела, і він швидкий і не має інших законних запитів, щоб вони відповідали журналу доступу, це, швидше за все, річ з бот-сканером.

Ці сканери також можуть навантажувати вашу програму, що може сповільнити інший законний трафік.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.