Re: Постоянное соединение с upstream

Anton Yuzhaninov citrin на citrin.ru
Пн Апр 19 17:07:13 MSD 2010


On 19.04.2010 16:37, Kpoxman wrote:
> Из-за кучи соединений у меня (в Linux) возникает ошибка "nf_conntrack: table
> full, dropping packet".

А зачем вообще фильтровать трафик между бэкендом и фронтендом через stateful
firewall.

IMHO firewall между фронтендом и бэкендом лучше вообще отключить, но если очень
нужно то должно хватьить stateless.

> Увеличил соответсвующий лимит - ошибка исчезла. Но вопрос остался: зачем
> создавать отдельное соединение на каждый запрос?

Для keep-alive нужна поддержка HTTP/1.1 (включая chunked encoding) при работе
nginx в качестве http-клиента (отправке запросов на бэкенд). Реализовать это не
очень просто, хотя сторонние патчи для этого вроде есть.

С другой стороны если между фронтендом и бэкендом быстрая сеть, а на бэкенде на
создание нового соединения стратися относительно малоресурсов, то keep-alive не
сильно нужен (экономит сравнительно мало ресурсов).

keep-alive между фронтендом и бэкедном реально полезен когда:
- между фронтендом и бэкендом относительно медленная сеть (сервера в разных ДЦ)
- бэкенд тратит на создание новой коннекции много ресурсов (например многие
сервера на java)

-- 
 Anton Yuzhaninov



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