Pesquisa de site

Como configurar o balanceador de carga de alta disponibilidade com 'HAProxy' para controlar o tráfego do servidor Web


HAProxy significa proxy de alta disponibilidade. É um aplicativo gratuito e de código aberto escrito em linguagem de programação C. O aplicativo HAProxy é usado como balanceador de carga TCP/HTTP e para soluções de proxy. O uso mais comum do aplicativo HAProxy é distribuir a carga de trabalho em vários servidores, por exemplo, servidor web, servidor de banco de dados, etc., melhorando assim o desempenho geral e a confiabilidade do ambiente do servidor.

O aplicativo altamente eficiente e rápido é usado por muitas organizações de renome mundial, que incluem, mas não se limitam a – Twitter, Reddit, GitHub e Amazon. Está disponível para plataformas Linux, BSD, Solaris e AIX.

Neste tutorial, discutiremos o processo de configuração de um balanceador de carga de alta disponibilidade usando HAProxy para controlar o tráfego de aplicativos baseados em HTTP (servidores web), separando solicitações em vários servidores.

Para este artigo, estamos usando a versão estável mais recente da versão HAProxy, ou seja, 1.5.10 lançada em 31 de dezembro de 2014. E também estamos usando o CentOS 6.5 para isso. setup, mas as instruções abaixo também funcionam nas distribuições CentOS/RHEL/Fedora e Ubuntu/Debian.

Configuração do meu ambiente

Aqui está nosso servidor HAProxy de balanceador de carga com nome de host como websrv.tecmintlocal.com com endereço IP 192.168.0.125.

Configuração do servidor HAProxy
Operating System	:	CentOS 6.5
IP Address		: 	192.168.0.125
Hostname		: 	websrv.tecmintlocal.com
Configuração de servidores Web clientes

As outras quatro máquinas estão instaladas e funcionando com servidores web como o Apache.

Web Server #1 :	CentOS 6.5 [IP: 192.168.0.121] - [hostname: web1srv.tecmintlocal.com]
Web Server #2 :	CentOS 6.5 [IP: 192.168.0.122] - [hostname: web2srv.tecmintlocal.com]
Web Server #3 :	CentOS 6.5 [IP: 192.168.0.123] - [hostname: web3srv.tecmintlocal.com]
Web Server #4 :	CentOS 6.5 [IP: 192.168.0.124] - [hostname: web4srv.tecmintlocal.com]

Etapa 1: Instalando o Apache em máquinas clientes

1. Primeiro temos que instalar o Apache em todos os quatro servidores e compartilhar qualquer um do site, para instalar o Apache em todos os quatro servidores aqui usaremos o seguinte comando.

yum install httpd		[On RedHat based Systems]
apt-get install apache2	[On Debian based Systems]

2. Depois de instalar o servidor web Apache em todas as quatro máquinas clientes, você pode verificar se qualquer um do servidor está executando o Apache acessando-o através do endereço IP no navegador.

http://192.168.0.121

Etapa 2: instalação do servidor HAProxy

3. Na maioria das distribuições Linux modernas de hoje, o HAPRoxy pode ser facilmente instalado a partir do repositório base padrão usando o gerenciador de pacotes padrão yum ou apt-get >.

Por exemplo, para instalar o HAProxy nas versões RHEL/CentOS/Fedora e Debian/Ubuntu, execute o seguinte comando. Aqui também incluí o pacote openssl, porque vamos configurar o HAProxy com suporte SSL e NÃO-SSL.

yum install haproxy openssl-devel	[On RedHat based Systems]
apt-get install haproxy		[On Debian based Systems]

Nota: No Debian Whezzy 7.0, precisamos habilitar o repositório backports adicionando um novo arquivo backports.list >no diretório “/etc/apt/sources.list.d/” com o seguinte conteúdo.

echo "deb http://cdn.debian.net/debian wheezy-backports main" >> /etc/apt/sources.list.d/backports.list

Em seguida, atualize o banco de dados do repositório e instale o HAProxy.

apt-get update
apt-get install haproxy -t wheezy-backports

Etapa 3: configurar logs HAProxy

4. Em seguida, precisamos ativar o recurso de registro no HAProxy para depuração futura. Abra o arquivo de configuração principal do HAProxy ‘/etc/haproxy/haproxy.cfg‘ com o editor de sua preferência.

vim /etc/haproxy/haproxy.cfg

A seguir, siga as instruções específicas da distribuição para configurar o recurso de log no HAProxy.

No RHEL/CentOS/Fedora

Em #Global settings, habilite a seguinte linha.

log         127.0.0.1 local2
No Ubuntu/Debian

Em #Global settings, substitua as seguintes linhas,

log /dev/log        local0
log /dev/log        local1 notice 

Com,

log         127.0.0.1 local2

5. Em seguida, precisamos ativar a recepção de syslog UDP no arquivo de configuração '/etc/rsyslog.conf' para separar os arquivos de log do HAProxy em /var/log diretório. Abra o arquivo ‘rsyslog.conf’ com o editor de sua preferência.

vim /etc/rsyslog.conf

Uncommnet ModLoad e UDPServerRun, aqui nosso servidor escutará a Porta 514 para coletar os logs no syslog.

Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

6. Em seguida, precisamos criar um arquivo separado 'haproxy.conf' no diretório '/etc/rsyslog.d/' para configurar arquivos de log separados.

vim /etc/rsyslog.d/haproxy.conf

Anexe a seguinte linha ao arquivo recém-criado.

local2.*	/var/log/haproxy.log

Por fim, reinicie o serviço rsyslog para atualizar as novas alterações.

service rsyslog restart