If some long-lived sessions are mixed with short-lived sessions (eg: WebSocket and HTTP), it's worth considering
timeout tunnel
, which overridestimeout client
andtimeout server
for tunnels, as well astimeout client-fin
for half-closed connections.http://cbonte.github.io/haproxy-dconv/configuration-1.5.html#4.2-timeout%20client
Quando timeout tunnel
está ativo em uma conexão - - o que acontece automaticamente para sockets da web, uma vez que a lógica HTTP é desanexada quando uma conexão é atualizada para um socket da web - - a maioria dos outros timeouts não dispara mais para essa conexão.
Note que este é um temporizador ocioso, não um temporizador de sessão. O timer é redefinido pelo tráfego de qualquer direção. Você pode aplicar isso ao backend ou na seção de padrões. Ele só deve ser realmente usado pelo HAProxy quando apropriado, mas colocá-lo no back-end específico onde ele é necessário é sem dúvida a melhor prática.