В TCP-соединениях, поддерживаемых NGinx, можно ли настроить отправку TCP Keepalive
(Не HTTP KeepAlive!)
У вас есть 2 варианта:
so_keepalive
опция nginxnginx-tcp-keepalive
директивы модуляlisten
директива с so_keepalive
вариант server
уровень. Видеть http://nginx.org/en/docs/http/ngx_http_core_module.html#listen для полной документации. Эта опция доступна с 2012-12-12 в nginx 1.1.11 и новее.
В nginx-tcp-keepalive модуль Николя Виеннот обеспечивает семью tcp_keep*
директивы, которые location
уровень. Этот модуль должен правильно работать в современных системах Linux и BSD. Поддержка Mac OS X ограничена tcp_keepalive
только. Изначально модуль был выпущен примерно в тот момент, когда nginx получил so_keepalive
вариант. Я не пробовал, если модуль все еще совместим с более новой версией nginx.
Сделал это: https://github.com/nviennot/nginx-tcp-keepalive
На данный момент директиву so_keepalive поддерживает только модуль почтового прокси.
Есть модуль LD_PRELOAD, который включает поддержку активности., даже если у приложения нет возможности сделать это. (Не знаю, работает ли он с nginx или нет.)