Re: Отработка лимитов, вопрос

Maxim Dounin mdounin at mdounin.ru
Tue Apr 16 12:09:07 UTC 2013


Hello!

On Tue, Apr 16, 2013 at 03:52:22PM +0400, denis wrote:

> 16.04.2013 15:41, Maxim Dounin пишет:
> >Hello!
> >
> >On Tue, Apr 16, 2013 at 04:43:29AM +0400, denis wrote:
> >
> >>16.04.2013 0:04, Maxim Dounin пишет:
> >>>но для большинства задач поведение по умолчанию наиболее разумно.
> >>>
> >>А почему? Ведь получается, что это потенциальный вектор для атаки.
> >Поведение по умолчанию - закрыть соединение с бекендом, если
> >клиент закрыл соединение с nginx'ом.  И это позволяет, при
> >грамотном программировании на бекенде, не тратить ресурсы на
> >дальнейшую обработку таких запросов.  Ну и в любом случае -
> >экономит ресурсы на nginx'е.
> Оффтопик, но интересно как такое вообще можно сделать. Ну закрыл
> соединение nginx (забудем про свежие версии нгинха, которые умеют
> http 1.1 и keep-alive соединения с апачем), но теперь надо это
> понять апачу, прибить запросы к базе и выполнение запрошенного
> скрипта.. и чтобы это всё было корректно.

В теории, в каком-нибудь php это даже должно быть поведением по 
умолчанию:

http://www.php.net/manual/en/features.connection-handling.php
http://www.php.net/manual/en/function.ignore-user-abort.php

В mod_perl, если мне не изменяет память, можно было периодически 
делать соответствующую проверку из своего кода:

http://perl.apache.org/docs/2.0/api/Apache2/Connection.html#C_aborted_

-- 
Maxim Dounin
http://nginx.org/en/donation.html



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