ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[3]: Как nginx закрывает коннект с бэкэндом?



Tue, 28 Mar 2006 18:26:04 +0400 (MSD)
Igor Sysoev <is@xxxxxxxxxxxxx> писал(а):

> On Tue, 28 Mar 2006, AleXXX V. NovikoFF wrote:
> 
> > 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 просто закрывает соединение.
> 

тогда такая опция бы пригодилась, в идеале с настройкой для location
ну и все-таки таймаут чтобы на нее действовал, 
какой нить из этих:

> >>>>             proxy_send_timeout          300;
> >>>>             proxy_read_timeout          300;

ну или свой какой-то...
а то мало ли что там случилось, повесится так куча таких висяков...


-- 
AleXXX V. NovikoFF <alexxx@xxxxxxxxx>




 




Copyright © Lexa Software, 1996-2009.