Fala Devs, tudo sussa?
Neste post vou explicar como instalar a última versão do HAProxy no CentOS 7, se você tentou instalar pelo YUM provavelmente se deparou com alguma versão desatualizada, conforme essa imagem aqui.
por isso vamos instalar e configurar o HaProxy direto do fonte, vou partir da premissa que se você chegou até aqui eu não preciso explicar o que é o HAProxy.
No momento da escrita deste post, a última versão estável é a 2.5.5 e é ela que vamos instalar.
Então, abra sua shellzinha aí e vamo lá.
A primeira coisa que precisamos fazer é instalar alguns pré-requisitos para conseguir compilar do fonte, execute o comando abaixo:
1 |
sudo yum install gcc pcre-devel openssl-devel tar make -y |
Depois disso vamos baixar o HaProxy com o comando abaixo.
1 |
wget http://www.haproxy.org/download/2.5/src/haproxy-2.5.5.tar.gz |
Depois de baixar, vamos extrair pra uma pasta
1 |
tar xzvf ~/haproxy-2.5.5.tar.gz -C ~/ |
Agora vamos entrar na pasta
1 |
cd ~/haproxy-2.5.5 |
Compilar
1 |
make TARGET=linux-glibc USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_CRYPT_H=1 USE_LIBCRYPT=1 |
E instalar
1 |
sudo make install |
Depois disso nós temos o HaProxy instalado, mas ainda precisamos fazer algumas configurações.
Vamos criar alguns diretórios e um arquivo de estatísticas do HaProxy
1 2 3 |
sudo mkdir -p /etc/haproxy sudo mkdir -p /var/lib/haproxy sudo touch /var/lib/haproxy/stats |
Criar um link simbólico para o binário do HaProxy pra poder rodar os comandos como usuário normal.
1 |
sudo ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy |
Agora precisamos adicionar o HaProxy como um serviço do sistema, o HaProxy já tem um arquivo de exemplo chamado haproxy.init na pasta examples, então vamos copiar este arquivo para dentro do diretório /etc/init.d/ e renomear ele pra haproxy, depois disso vamos alterar a permissão do arquivo e reiniciar o daemon do sistema.
1 2 3 |
sudo cp ~/haproxy-2.5.5/examples/haproxy.init /etc/init.d/haproxy sudo chmod 755 /etc/init.d/haproxy sudo systemctl daemon-reload |
Depois disso precisamos habilitar o serviço para inicializar do boot do sistema.
1 |
sudo chkconfig haproxy on |
A documentação do HaProxy também recomenda criar um usuário para rodar o HaProxy
1 |
sudo useradd -r haproxy |
Agora vamos verificar a versão do sistema
1 |
haproxy -v |
E deve aparecer algo tipo essa imagem aqui
Por fim vamos fazer uma liberação no firewall
1 2 3 |
sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --reload |
Para instalar o mod_ssl execute o comando abaixo
1 |
sudo yum install mod_ssl -y |
Depois disso seu HaProxy vai estar totalmente funcional, bastando ajustar o balanceamento no arquivo /etc/haproxy/haproxy.cfg
Abaixo segue um exemplo do arquivo de configuração, altere os ips em servers para os ips dos seus servidores.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
global log /dev/log local0 log /dev/log local1 notice chroot /var/lib/haproxy stats timeout 30s user haproxy group haproxy daemon defaults log global mode http option httplog option dontlognull timeout connect 5000 timeout client 50000 timeout server 50000 frontend http_front bind *:80 stats uri /haproxy?stats default_backend http_back backend http_back balance roundrobin server server1 192.168.100.172:80 check server server2 192.168.100.173:80 check |
Depois de alterar o arquivo de configuração não esqueça de reiniciar o serviço
1 |
systemctl restart haproxy |
Para verificar como ficou o seu balanceamento basta acessar http://ipdoseuservidorcomhaproxy/haproxy?stats
E você deve ver uma telinha parecida com essa aqui.
Se os servidores estiverem em verde significa que o HaProxy está conseguindo redirecionar o tráfego e fazer o health check deles com sucesso, caso contrário pode ser necessário verificar o firewall nos seus servidores de destino.
Troubleshooting
Se estiver tendo algum problema no arquivo de configuração e quiser fazer um troubleshotting, execute o comando abaixo, ele vai exibir em detalhes o problema encontrado no arquivo de configuração.
1 |
sudo haproxy -c -f /etc/haproxy/haproxy.cfg |
Então é isso, espero que este post tenha ajudado vocês, bjundas.