Как 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