proxy_socket_keepalive on;
Maxim Dounin
mdounin на mdounin.ru
Пн Дек 10 13:36:45 UTC 2018
Hello!
On Mon, Dec 10, 2018 at 06:53:32AM -0500, suffix wrote:
> В версии 1.15.6 появилась эта опция.
>
> Вставляю в location - не работает.
>
> Подозреваю что по аналогии с fastcgi_pass нужно вместо:
>
> location @fallback {
> proxy_pass http://127.0.0.1:8080;
> proxy_socket_keepalive on;
> }
> Нужно так сделать:
>
> upstream proxy_backend {
> server 127.0.0.1:8080;
> keepalive 32;
> }
>
> location / {
> proxy_pass proxy_backend;
> proxy_socket_keepalive on;
> }
>
> Правильно я понимаю ?
Судя по всему, вы неправильно понимаете, зачем нужна эта опция.
Эта опция - чтобы выставить SO_KEEPALIVE на сокете соединения с
бэкендом, аналогично параметру "so_keepalive" для listen-сокетов.
Это нужно, чтобы даже по неактивному соединению периодически ходили
пакеты, и соответственно а) если та сторона не отвечает - то nginx об
этом узнал по возможности раньше, и б) если между nginx'ом и
бэкендом стоит statefull firewall, то он видел, что соединение -
активно, и соответствующий ему state не надо выкидывать.
Если вы хотите просто хотите использовать постоянные соединения с
бэкендами - вам эта опция не нужна, а нужно настроить keepalive в
соответствии с инструкциями тут:
http://nginx.org/r/keepalive
Процедура не менялась с момента появления соответствующей фичи в
nginx 1.1.4.
--
Maxim Dounin
http://mdounin.ru/
Подробная информация о списке рассылки nginx-ru