Tue, 28 Mar 2006 17:20:49 +0400 (MSD)
Igor Sysoev <is@xxxxxxxxxxxxx> писал(а):
On Tue, 28 Mar 2006, AleXXX V. NovikoFF wrote:
Mon, 27 Mar 2006 23:41:56 +0500
"AleXXX V. NovikoFF" <alexxx@xxxxxxxxx> писал(а):
Добрый день!
Возникла проблема, на бэкэнде есть скрипт выполняющийся с опцией
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 ?
вполне бы подошло....но все же сомнение.... т.е. при потере связи с
клиентом nginx закрывает соединение с бэкэндом нормальным способом, что
тот думает, что соединение завершилось нормально, так чтоли?
Да, nginx просто закрывает соединение.
Игорь Сысоев
http://sysoev.ru