Estou usando o Nginx para fornecer conteúdo estático e o Haproxy para fazer proxy de solicitações para vários back-ends do Apache2 descobertos pelo Zookeeper.
Nginx - > Haproxy - > Apache2
De acordo com o site oficial do Nginx, ele agrega conexões de longa manutenção no caminho para fins de back-end, como isso , reduzindo o número de conexões a um mínimo.
Portanto, minha suposição era de que o Nginx é onde o Keepalive deve estar ativo e definido como um valor maior, no meu caso "keepalive_timeout 600";
Em seguida, ele acessa o Haproxy em uma porta local, com a opção "httpclose" ativada no back-end do Apache:
option httpclose Enable or disable passive HTTP connection closing
HAProxy does not yet support the HTTP keep-alive mode. So by default, if a client communicates with a server in this mode, it will only analyze, log, and process the first request of each connection. To workaround this limitation, it is possible to specify "option httpclose". It will check if a "Connection: close" header is already set in each direction, and will add one if missing. Each end should react to this by actively closing the TCP connection after each transfer, thus resulting in a switch to the HTTP close mode. Any "Connection" header different from "close" will also be removed.
This option may be set both in a frontend and in a backend. It is enabled if at least one of the frontend or backend holding a connection has it enabled.
O Haproxy, em seguida, direciona as conexões para o Apache2.
Então, minha suposição é que neste caso eu terei que desligar o keepalive do Apache, já que a) Nginx agrega conexões b) Haproxy as fecha.
Estou correto em meu raciocínio e qual seria a melhor maneira de otimizar o keepalive em uma cadeia como essa?
Atualização: Este tópico ServerFault observa que é mais benéfico remover o keepalive do Haproxy também (e assim livrar-se do httpclose, presumo), já que a latência entre o Haproxy e o Apache ser muito baixo para justificar a remoção do aperto de mão de qualquer maneira.
Então isso nos deixa com Nginx (KA) - > Haproxy (sem KA) - > Apache (sem KA)
Essa é uma opção melhor?
Tags nginx apache-2.2 haproxy keepalive