Как nginx закрывает коннект с бэкэндом?

Igor Sysoev is at rambler-co.ru
Tue Mar 28 17:20:49 MSD 2006


On Tue, 28 Mar 2006, AleXXX V. NovikoFF wrote:

> Mon, 27 Mar 2006 23:41:56 +0500
> "AleXXX V. NovikoFF" <alexxx at alexxx.ru> писал(а):
>
>> Добрый день!
>>
>> Возникла проблема, на бэкэнде есть скрипт выполняющийся с опцией
>> ignore_user_abort = true;
>> когда он просто болтался на апаче, он работал до конца, даже если юзер
>> нажимал в броузере "Стоп" ну или просто связь рвалась, или таймаут
>> наступал...
>> Тот же скрипт висит на бэкэнде через nginx - он перестал выполняться до
>> конца, при одном из условий он просто прибивается... :(
>>
>> Как бы такого избежать?
>>
>> Скрипт ничего не выводит, просто через какое-то время делает HTTP/1.0
>> 302 Moved и Location.
>> Пробовал выводить что-то - тоже самое.
>> Вот так прицеплен к нему прокси:
>>
>>         location ^~ /script/ {
>>             proxy_pass   http://127.0.0.1;
>>
>>             proxy_connect_timeout       300;
>>             proxy_send_timeout          300;
>>             proxy_read_timeout          300;
>>
>>             proxy_buffer_size          1k;
>>             proxy_buffers              4 32k;
>>             proxy_temp_file_write_size 256k;
>>
>>             proxy_set_header    Host             $host;
>>             proxy_set_header    X-Real-IP        $remote_addr;
>>         }
>>
>>
>> Может я чего-то не так делаю?
>>
>
> и тишина, и мертвые с косами.... :-)

Если клиент закрыл соединение, то nginx тоже закрывает соединение с бэкендом.
Это легко сделать настраиваемым, нужно только придумать название директиве

proxy_ignore_client_abort  on|off  ?


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list