Re[2]: Nginx дублирует запросы на бекенд

Никита m_nikita на bk.ru
Ср Ноя 30 12:44:17 UTC 2016


Если клиент повторил запрос - почему тогда в трейсах и логах не видно входящего конекта от внешнего инициатора запроса, есть только внезапный реквест на апстрим ?

>Среда, 30 ноября 2016, 4:22 +03:00 от Валентин Бартенев <vbart на nginx.com>:
>
>On Wednesday 30 November 2016 03:37:50 Никита wrote:
>> Доброго времени суток.
>> 
>> Суть проблемы: пришел запрос, ушел на бекенд. Если бекенд не ответил за 2 секунды , nginx перестает ждать и отправляет еще один аналогичный запрос на бекенд, который отвергает приложение ввиду того что все еще занято прошлым запросом(на таблицах висят локи и пр).
>> 
>> Вопрос: Почему nginx может не ждать выполнения а дублировать запрос спустя 2  секунды.
>> 
>> Вот немного деталей.
>> 
>> nginx version: nginx/1.11.6
>> built by gcc 4.8.2 (Ubuntu 4.8.2-19ubuntu1) 
>> built with OpenSSL 1.0.1f 6 Jan 2014
>> TLS SNI support enabled
>> configure arguments: --prefix=/usr/share/nginx --with-cc-opt='-I /usr/include' --with-ld-opt='-L /usr/lib' --conf-path=/etc/nginx/nginx.conf --sbin-path=/usr/sbin/nginx --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx/nginx-error.log --user=www-data --group=www-data --with-file-aio --http-client-body-temp-path=/var/tmp/nginx/client_body_temp --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp --http-proxy-temp-path=/var/tmp/nginx/proxy_temp --http-scgi-temp-path=/var/tmp/nginx/scgi_temp --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp --http-log-path=/var/log/nginx/nginx-access.log --with-http_perl_module --with-http_stub_status_module --with-pcre --with-http_ssl_module --add-module=/usr/src/ngx_devel_kit-0.2.19 --add-module=/usr/src/lua-nginx-module --add-module=/usr/src/echo-nginx-module --with-debug --with-http_realip_module --add-module=/usr/src/nginx_upstream_check_module
>> 
>> client_max_body_size       300m;
>> client_body_buffer_size    128k;
>> proxy_read_timeout 180s;
>> proxy_send_timeout 180s;
>> proxy_connect_timeout   10s;
>> proxy_http_version 1.1;
>> proxy_set_header Connection keep-alive;
>> proxy_next_upstream error;
>> proxy_next_upstream_timeout 30s;
>> 
>> 
>> proxy_ignore_client_abort   on пробовал, не помогло.
>> 
>> Вот вывод strike детки которая обрабатывала запрос:  http://pastebin.com/raw/HFP9tNNm
>> Интересно что делал nginx между 23:32:10 и 23:32:12
>> 
>
>Ждал ответа от бэкенда.
>
>
>> Вот вывод debug лога:  http://pastebin.com/raw/SQhXKVQ9
>> 
>> Куда копать дальше ? 
>> 
>> Спасибо.
>> 
>> 
>
>Судя по логу клиент закрыл соединение через две секунды, а затем послал ещё один запрос в другом соединении.
>
>--
>Валентин Бартенев
>_______________________________________________
>nginx-ru mailing list
>nginx-ru на nginx.org
>http://mailman.nginx.org/mailman/listinfo/nginx-ru

-- 
Никита Маслянников
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20161130/9d096e35/attachment.html>


Подробная информация о списке рассылки nginx-ru