Proxy reverso alternativo que suporta HTTP 1.1, SSL e keep-alive?

2

Atualmente, estamos usando o nginx, mas precisamos fazer o proxy upstream para o haproxy usando o HTTP 1.1, que o módulo proxy do nginx não suporta.

Existe uma alternativa confiável e orientada a eventos para o nginx que suporta HTTP 1.1, SSL e o keep-alive do lado do cliente?

    
por user41356 18.02.2011 / 03:54

3 respostas

1

Você pode experimentar o verniz ou talvez libra .

    
por 18.02.2011 / 03:58
1

Graças à implementação não-padrão da Microsoft do SSL (ter um google para 'Microsoft SSL close-notify') Keep-alive e SSL não são uma mistura feliz ao usar um navegador MSIE. Mas há algumas indicações de que o MS pode estar melhorando em versões mais recentes.

No caso de mod_ssl, você pode configurar diferentes comportamentos com base no user-agent . Isso precisa ser feito no local em que o SSL é finalizado - uma vez que ele precisa decodificar o SSL para localizar o agente do usuário - e decidir se deve ou não permitir o keep-alive. Como o stunnel não sabe nada sobre HTTP, você não pode permitir isso no proxy.

Então, você pode tentar simplesmente deixar cair o stunnel (mas ele não fará nenhum cache) e esperar pelo melhor (keep-alives são configurados no servidor web).

Sem pesquisar mais, não faz muito sentido ter os keep-alives ativados usando um proxy sem cache e rodar os servidores atrás do ha-proxy - tudo o que eles farão é o carregamento básico. balanceamento - você está prejudicando o failover.

Embora o conselho em HTTP / 1.1 tenha sido limitar o número de conexões por nome de servidor a 2, a maioria dos desenvolvedores de navegadores considerou que isso não faz nada para limitar a carga nos servidores - o único efeito é diminuir a velocidade o cliente, forçando solicitações em série. Portanto, há menos motivos para usar o keep-alive do que antigamente.

Então se você quiser controle seletivo sobre keep-alive, então eu acho que a única opção seria o apache + mod_ssl + mod_proxy

    
por 18.02.2011 / 15:12
0

Você realmente precisa de http / 1.1 no lado do servidor ou deseja manter a atividade? 1.1 não traz muito, basicamente apenas a codificação em pedaços e "espera: 100-continue". A codificação em partes é boa quando o servidor é comprimido, mas esse não é o caso com frequência. Agora, se você acha que precisa manter-se vivo, considere a latência de rede entre o seu nginx e haproxy. Se ambos estão na mesma LAN, você realmente não precisa manter vivo, pois o custo de estabelecer uma conexão é extremamente pequeno. Muitas pessoas encadearam nginx e haproxy juntas sem nenhum problema, então eu acho que você poderia realmente manter seu nginx.

Alternativamente, você pode usar o stunnel na frente do haproxy para manipular somente SSL. Você então obterá o client-side keep-alive e o HTTP / 1.1 diretamente do haproxy.

    
por 18.02.2011 / 07:04