Quais são as diferenças entre o HAProxy e o Ngnix no modo de proxy reverso?

23

Quais são as diferenças entre HAProxy e Nginx quando se trata de suas habilidades como proxy reverso?

Quintin Par
fonte

Respostas:

5

Atualização de 2019:

São produtos estáveis ​​e maduros. O HAProxy é dedicado ao balanceamento de carga e é melhor nisso, enquanto o nginx é um servidor da web que pode atuar como um balanceador de carga.

Ambos:

  • Suporte HTTPS
  • Suporte Websocket
  • Produtos estáveis, maduros e muito eficientes
  • Pode lidar com conexões de 10k com um mínimo ou nenhum ajuste

HAProxy:

  • Balanceamento de carga TCP, TCP-SSL, HTTP e HTTPS
  • Mais flexibilidade nas verificações de saúde e nas condições de failover
  • Cache básico (v1.8 - 2017)
  • Formato de log personalizável, para importar logs de acesso para kibana / splunk / graylog
  • Página de status detalhada, para ver solicitações ativas e status dos servidores
  • Métricas exportáveis, para integrar com soluções de monitoramento (grafite / prometheus / datadog)
  • Mais orientado para o alto desempenho. Melhor indicado para lidar com conexões de 100k ou interfaces de 40 GbE.

Nginx:

  • Balanceamento de carga HTTP e HTTPS (TCP - UDP na edição paga)
  • Mais flexibilidade no cache
  • Formato de log personalizável, para importar logs de acesso para kibana / splunk / graylog
  • Nenhuma página de status (apenas edição paga)
  • Nenhuma métrica exportável (apenas edição paga)
  • Pode servir arquivos locais
  • Pode servir aplicativos FastCGI (não CGI)

HAProxy é um software livre, totalmente de código aberto. Eles ganham dinheiro vendendo equipamentos de hardware com o HAProxy pré-instalado.

O Nginx é um núcleo aberto e muitos recursos estão disponíveis apenas na edição paga. Notavelmente, falta uma página de status e métricas de monitoramento que são um grande NÃO NÃO para operar um balanceador de carga.

user5994461
fonte
42

HAProxy é realmente apenas um balanceador de carga / proxy reverso. Nginx é um servidor da Web que também pode funcionar como um proxy reverso.

Aqui estão algumas diferenças:

HAProxy:

  • O TCP e o proxy HTTP (SSL adicionado de 1.5-dev12)
  • Mais opções de limitação de taxa
  • O autor responde a perguntas aqui no Server Fault ;-)

Nginx :

  • Suporta SSL diretamente
  • Também é um servidor de cache

No Stack Overflow, usamos principalmente HAProxy com nginx para descarregamento de SSL, portanto, HAProxy é minha recomendação.

Kyle Brandt
fonte
11

Eu uso o nginx para frontend HAProxy, mas apenas para terminação SSL.

O HAProxy é um balanceador de carga muito mais ajustável e gerenciável (na minha experiência).

Também incorporo o Varnish para o cache estático de objetos. (como um back-end específico do HAProxy)

Consulte esta pergunta sobre falha no servidor para obter mais informações. Pedido de nginx / verniz / haproxy

Joel K
fonte
3
As versões instáveis ​​mais recentes (setembro de 2012) do HAProxy agora suportam SSL. (potencialmente removendo a minha necessidade de nginx run)
Joel K
5

Se necessário, apenas para o proxy de alta disponibilidade do balanceamento de carga é melhor. Porém, combinar o proxy nginix e o HA pode ser mais útil, pois o nginix é rápido no fornecimento de conteúdo estático, ele atenderá a todas as solicitações de dados estáticos e enviará toda a solicitação ao proxy HA, que serve como balanceador de carga e envia a solicitação ao servidor da web para servir solicitação equilibrando a carga.

Mitesh
fonte