Como configurar o balanceador de carga Haproxy no Ubuntu 18.04 e 16.04
- 1988
- 572
- Leroy Lebsack
Haproxy é uma solução muito rápida e confiável para alta disponibilidade, balanceamento de carga, ele suporta aplicativos baseados em TCP e HTTP. Atualmente, maximizando os sites de tempo de subida é muito crucial para sites de tráfego pesado. Isso não é possível com a configuração de servidor único. Em seguida, precisamos de algum ambiente de alta disponibilidade que possa gerenciar facilmente com falha de servidor único.
Este artigo ajudará você a configurar o ambiente de balanceamento de carga Haproxy no Ubuntu, Debian e Linuxmint. Isso vai configurar um Balanceamento de carga da camada 4 (Camada de transporte). Que equilibrarão as solicitações de carregamento e transferência para servidores diferentes-2 com base no endereço IP e nos números de porta.
Detalhes da rede -
Abaixo está o nosso servidor de rede. Existem 3 servidores da Web em execução com o Apache2 e ouvindo na porta 80 e um servidor Haproxy.
Detalhes do servidor da web: Servidor 1: Web1.exemplo.com 192.168.1.101 Servidor 2: Web2.exemplo.com 192.168.1.102 Servidor 3: Web3.exemplo.com 192.168.1.103 Servidor Haproxy: Haproxy: Haproxy 192.168.1.12
Etapa 1 - Instale o Haproxy
Agora comece a configuração. SSH para o seu servidor Haproxy como um usuário privilegiado e instale o Haproxy usando os seguintes comandos.
sudo add-aprop-repository ppa: vbernat/haproxy-1.8 sudo apt-get update sudo apt-get install haproxy
Etapa 2 - Configure o balanceamento de carga do haproxy
Agora edite o arquivo de configuração padrão do Haproxy /etc/haproxy/haproxy.cfg
e inicie a configuração.
sudo vi/etc/haproxy/haproxy.cfg
Configurações padrão:
Você encontrará alguma configuração padrão, como abaixo. Se você não tem idéia suficiente sobre isso, pode manter como é.
LOG GLOBAL/DEV/LOG LOCAL0 LOG/DEV/LOG LOCAL1 AVISO CHROOT/VAR/LIB/HAPROXY STACK.Modo de meia 660 Nível de administrador Timeout 30s Usuário Haproxy Group Haproxy Daemon # Locais de material SSL padrão Ca-Base/etc/ssl/certs CRT-Base/etc/ssl/privado # cifras padrão para usar em soquetes de escuta habilitados para SSL. # Para mais informações, consulte Ciphers (1SSL). Esta lista é de: # https: // hynek.me/artigos/endurecimento-your-web-servers-ssl-ciphers/ssl-default-bind-ciphers ecdh+aesgcm: dh+aesgcm: ecdh+aes256 :: rsa+aes: rsa+3des:!Anull:!MD5:!DSS SSL-Default-Bind-Options No-SSLV3 Padrão Log Modo Global HTTP Option HTTPLOG Timeout DontLognull Conectar 5000 Timeout Cliente 50000 Timeout Server 50000 Errorfile 400/etc/haproxy/erros/400.HTTP ERRORFILE 403/etc/HAPROXY/ERROS/403.HTTP ERRORFILE 408/etc/HAPROXY/ERROS/408.HTTP Errorfile 500/etc/Haproxy/erros/500.HTTP Errorfile 502/etc/Haproxy/erros/502.HTTP Errorfile 503/etc/Haproxy/erros/503.HTTP Errorfile 504/etc/Haproxy/erros/504.http
Adicionando ouvinte Haproxy:
Agora diga a Haproxy para onde ouvir novas conexões. De acordo com a configuração abaixo.168.1.12 Endereço IP.
Frontend Local_server Bind 192.168.1.12:80 Modo HTTP Default_backend My_Web_servers
Adicione servidores da web de back -end:
De acordo com a configuração acima, o Haproxy agora está ouvindo na porta 80. Agora defina os servidores da Web de back -end, onde o Haproxy envia a solicitação.
Modo de back-end Modo HTTP Balance Roundrobin Opção Avançando para HTTP-Request Chefe-cabeçalho X Forwarded-Port %[dst_port] http-request add-thebt x-forwarded-proto https se ssl_fc opção httpchk cabeça / http / 1.1rnhost: localhost servidor web1.exemplo.com 192.168.1.101: 80 servidor web2.exemplo.com 192.168.1.102: 80 servidor web3.exemplo.com 192.168.1.103: 80
Ativar estatísticas (opcional)
Agora, se você quiser, pode ativar as estatísticas do Haproxy adicionando a seguinte configuração no arquivo de configuração do Haproxy.
Ouça as estatísticas *: 1936 Estatísticas Ativar estatísticas de ocultar estatísticas de versões Atualização 30s estatísticas mostram estatísticas de nó auth auth: senha estatísticas
Etapa 3 - arquivo de configuração final do Haproxy
O arquivo de configuração final pode parecer abaixo:
LOG GLOBAL/DEV/LOG LOCAL0 LOG/DEV/LOG LOCAL1 AVISO CHROOT/VAR/LIB/HAPROXY STACK.Modo de meia 660 Nível de administrador Timeout 30s Usuário Haproxy Group Haproxy Daemon # Locais de material SSL padrão Ca-bas das cifras/etc/ssl/certs crt-base/etc/ssl/privado # cifras padrão para usar em soquetes de escuta habilitados para SSL. # Para mais informações, consulte Ciphers (1SSL). Esta lista é de: # https: // hynek.me/artigos/endurecimento-your-web-servers-ssl-ciphers/ssl-default-bind-ciphers ecdh+aesgcm: dh+aesgcm: ecdh+aes256 :: rsa+aes: rsa+3des:!Anull:!MD5:!DSS SSL-Default-Bind-Options No-SSLV3 Padrão Log Modo Global HTTP Option HTTPLOG Timeout DontLognull Conectar 5000 Timeout Cliente 50000 Timeout Server 50000 Errorfile 400/etc/haproxy/erros/400.HTTP ERRORFILE 403/etc/HAPROXY/ERROS/403.HTTP ERRORFILE 408/etc/HAPROXY/ERROS/408.HTTP Errorfile 500/etc/Haproxy/erros/500.HTTP Errorfile 502/etc/Haproxy/erros/502.HTTP Errorfile 503/etc/Haproxy/erros/503.HTTP Errorfile 504/etc/Haproxy/erros/504.Frontend HTTP Local_server Bind 192.168.1.12:80 Modo http default_backend my_web_servers backend backend my_web_servers Modo http balance redondrobin opção para http-request set header x-forwarded-port %[dst_port] http-request header xforwerd-proto httpsps ift Http/1.1rnhost: localhost servidor web1.exemplo.com 192.168.1.101: 80 servidor web2.exemplo.com 192.168.1.102: 80 servidor web3.exemplo.com 192.168.1.103: 80 Ouça estatísticas *: 1936 Estatísticas Ativar estatísticas estatísticas de hide-version estatísticas 30s estatísticas mostram estatísticas de nó de autenticação nome de usuário: estatísticas de senha URI /estatísticas
Etapa 4 - Reinicie o Haproxy
Agora você fez todas as mudanças necessárias em seu servidor Haproxy. Agora verifique o arquivo de configuração antes de reiniciar o serviço usando o seguinte comando.
Haproxy -c -f/etc/haproxy/haproxy.cfg
Se o comando acima retornar a saída como arquivo de configuração for válido, reinicie o serviço haproxy
SUDO Service Haproxy Reiniciar
Etapa 5 - Verifique a configuração do Haproxy
Nesta fase, temos uma configuração de haproxy funcional completa. Em cada nó do servidor da web, tenho um índice de demonstração.Página HTML mostrando o nome dos servidores, para que possamos diferenciar facilmente entre os servidores páginas da web.
Agora acesse a porta 80 no IP 192.168.1.12 (conforme configurado acima) no navegador da web e pressione a atualização. Você verá que o Haproxy está enviando solicitações para servidores de back-end um por um (conforme o algoritmo Round-Robin).
A cada atualização, o Haproxy está enviando solicitação um a um para um servidor de back -end.
Referência: http: // www.Haproxy.org/download/1.5/doc/configuração.TXT
- « Como instalar a lâmpada (Php 5.5, Apache 2.4 e mysql 5.5) no Ubuntu 14.04 (fiduciário tahr)
- Como criar uma filial no repositório Git remoto »