Welcome! Log In Create A New Profile

Advanced

Re: epoll_wait() reported that client prematurely closed connection

Валентин Бартенев
September 19, 2014 10:22AM
On Friday 19 September 2014 09:52:53 ole-lukoje wrote:
> Валентин, скажите, а почему директива proxy_ignore_client_abort не поможет ?
> Как я понял, она служит для того, чтобы гарантировать, что nginx не будет
> разрывать соединение с проксируемым сервером, если клиент по какой-то
> причине разорвал соединение с nginx. Почему она не помогает ? (и кстати да,
> при включении создается ощущение, что она никак вообще не влияет на
> процесс).

Как уже написал в предыдущем письме, она влияет лишь на отслеживание закрытия
соединения до начала передачи ответа. Если клиент закрыл соединения после
начала передачи ответа, то соединение с бэкендом будет закрыто также, вне
зависимости от значение директивы, за исключением случаев, когда нужно
сохранить ответ в кэш или в файл.

Директива proxy_ignore_client_abort нужна в одном из следующих случаев:

1. Для совместимости с клиентами, которые делают SHUT_WR на соединении
после отправки запроса;

2. Когда бэкенд не отслеживает закрытие соединения во время обработки
запроса, а вы используете limit_conn и хотите чтобы модуль продолжал
учитывать этот запрос до тех пор, пока бекенд не сформирует ответ
и не начнет его отдавать;

3. Когда бэкенд отслеживает закрытие соединения, но, по тем или иным
причинам, вы не хотите чтобы это происходило до начала передачи
ответа.

Как видите, ни один из них не гарантирует того, что nginx не будет
закрывать соединение уже после начала передачи ответа.


>
> Я proxy_store не использовал, но она, вроде, позволяет сохранять ответ от
> прокс. сервера в файле (или если файл получили, то сохранять файл) в кэше.
>
>
> НО тут есть 2 момент,
> проксируемый сервер выдает картинки (которые он получает от других
> серверов, делает некоторые манипуляции),
> и картинка под одним и тем же именем может представлять разные
> изображения,
> поэтому, видимо, proxy_store использовать нельзя.

Я не предлагал вам сохранять файл для последующего использования.
Сохранять вы его можете хоть в /dev/null, просто nginx в этом случае
не будет закрывать соединение с бэкендом, пока не получит ответ целиком.

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

--
Валентин Бартенев
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

epoll_wait() reported that client prematurely closed connection

ole-lukoje September 17, 2014 10:38AM

Re: epoll_wait() reported that client prematurely closed connection

Валентин Бартенев September 17, 2014 11:14AM

Re: epoll_wait() reported that client prematurely closed connection

ole-lukoje September 18, 2014 01:49AM

Re: epoll_wait() reported that client prematurely closed connection

Vadim Lazovskiy September 18, 2014 02:04AM

Re: epoll_wait() reported that client prematurely closed connection

ole-lukoje September 18, 2014 03:03AM

Re: epoll_wait() reported that client prematurely closed connection

Валентин Бартенев September 18, 2014 04:18AM

Re: epoll_wait() reported that client prematurely closed connection

ole-lukoje September 19, 2014 09:52AM

Re: epoll_wait() reported that client prematurely closed connection

Валентин Бартенев September 19, 2014 10:22AM

Re: epoll_wait() reported that client prematurely closed connection

ole-lukoje October 03, 2014 09:16AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 323
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready