Pesquisa de site

Configurando o balanceador de carga 'XR' (Crossroads) para servidores Web no RHEL/CentOS


Crossroads é um utilitário de failover e balanceamento de carga de código aberto, independente de serviço, para serviços baseados em Linux e TCP. Pode ser usado para HTTP, HTTPS, SSH, SMTP e DNS, etc. É também um utilitário multithread que consome apenas um espaço de memória, o que aumenta o desempenho no balanceamento de carga.

Vamos dar uma olhada em como funciona o XR. Podemos localizar o XR entre os clientes da rede e um conjunto de servidores que despacha as solicitações dos clientes para os servidores que equilibram a carga.

Se um servidor estiver inativo, o XR encaminhará a próxima solicitação do cliente para o próximo servidor na fila, para que o cliente não sinta tempo de inatividade. Dê uma olhada no diagrama abaixo para entender que tipo de situação iremos lidar com o XR.

Existem dois servidores web, um servidor gateway que instalamos e configuramos o XR para receber solicitações de clientes e distribuí-las entre os servidores.

XR Crossroads Gateway Server : 172.16.1.204
Web Server 01 : 172.16.1.222
Web Server 02 : 192.168.1.161

No cenário acima, meu servidor gateway (ou seja, XR Crossroads) carrega o endereço IP 172.16.1.222, webserver01 é 172.16.1.222 e escuta através porta 8888 e webserver02 é 192.168.1.161 e escuta através da porta 5555.

Agora basta equilibrar a carga de todas as solicitações que o gateway XR recebe da internet e distribuí-las entre dois servidores web balanceando a carga.

Etapa 1: Instale o XR Crossroads Load Balancer no servidor Gateway

1. Infelizmente, não há nenhum pacote RPM binário disponível para crosscroads, a única maneira de instalar XR crossroads a partir do tarball fonte.

Para compilar o XR, você deve ter o compilador C++ e os utilitários Gnu make instalados no sistema para continuar a instalação sem erros.

yum install gcc gcc-c++ make

Em seguida, baixe o tarball de origem acessando o site oficial (https://crossroads.e-tunity.com) e pegue o pacote arquivado (ou seja, crossroads-stable.tar.gz).

Alternativamente, você pode usar o seguinte utilitário wget para baixar o pacote e extraí-lo em qualquer local (por exemplo: /usr/src/), ir para o diretório descompactado e emitir “< comando forte>fazer instalação”.

wget https://crossroads.e-tunity.com/downloads/crossroads-stable.tar.gz
tar -xvf crossroads-stable.tar.gz
cd crossroads-2.74/
make install

Após o término da instalação, os arquivos binários são criados em /usr/sbin/ e a configuração XR em /etc, ou seja, “xrctl.xml ”.

2. Como último pré-requisito, você precisa de dois servidores web. Para facilitar o uso, criei duas instâncias python SimpleHTTPServer em um servidor.

Para ver como configurar um SimpleHTTPServer python, leia nosso artigo em Crie dois servidores Web facilmente usando SimpleHTTPServer.

Como eu disse, estamos usando dois servidores web, e eles são webserver01 rodando em 172.16.1.222 através da porta 8888 e webserver02 rodando em 192.168.1.161 através da porta 5555.

Etapa 2: configurar o balanceador de carga XR Crossroads

3. Todos os requisitos estão em vigor. Agora o que precisamos fazer é configurar o arquivo xrctl.xml para distribuir a carga entre os servidores web que recebe pelo servidor XR da internet.

Agora abra o arquivo xrctl.xml com o editor vi/vim.

vim /etc/xrctl.xml

e faça as alterações conforme sugerido abaixo.

<?xml version=<94>1.0<94> encoding=<94>UTF-8<94>?>
<configuration>
<system>
<uselogger>true</uselogger>
<logdir>/tmp</logdir>
</system>
<service>
<name>Tecmint</name>
<server>
<address>172.16.1.204:8080</address>
<type>tcp</type>
<webinterface>0:8010</webinterface>
<verbose>yes</verbose>
<clientreadtimeout>0</clientreadtimeout>
<clientwritetimout>0</clientwritetimeout>
<backendreadtimeout>0</backendreadtimeout>
<backendwritetimeout>0</backendwritetimeout>
</server>
<backend>
<address>172.16.1.222:8888</address>
</backend>
<backend>
<address>192.168.1.161:5555</address>
</backend>
</service>
</configuration>

Aqui você pode ver uma configuração XR muito básica feita em xrctl.xml. Eu defini o que é o servidor XR, quais são os servidores back-end e suas portas e porta de interface web para o XR.

4. Agora você precisa iniciar o daemon XR emitindo os comandos abaixo.

xrctl start
xrctl status

5. Ok, ótimo. Agora é hora de verificar se as configurações estão funcionando bem. Abra dois navegadores da web e digite o endereço IP do servidor XR com porta e veja o resultado.

Fantástico. Funciona bem. agora é hora de brincar com o XR.

6. Agora é hora de fazer login no painel do XR Crossroads e ver a porta que configuramos para a interface web. Insira o endereço IP do seu servidor XR com o número da porta da interface web que você configurou em xrctl.xml.

http://172.16.1.204:8010

Isto é o que parece. É fácil de entender, fácil de usar e fácil de usar. Ele mostra quantas conexões cada servidor back-end recebeu no canto superior direito junto com os detalhes adicionais sobre o recebimento de solicitações. Você também pode definir o peso da carga que cada servidor precisa suportar, o número máximo de conexões e a média de carga, etc.

A melhor parte é que você pode fazer isso mesmo sem configurar o xrctl.xml. A única coisa que você precisa fazer é emitir o comando com a seguinte sintaxe e ele fará o trabalho.

xr --verbose --server tcp:172.16.1.204:8080 --backend 172.16.1.222:8888 --backend 192.168.1.161:5555

Explicação detalhada da sintaxe acima:

  1. –verbose mostrará o que acontece quando o comando é executado.
  2. –server define o servidor XR no qual você instalou o pacote.
  3. –backend define os servidores web para os quais você precisa equilibrar o tráfego.
  4. Tcp define que usa serviços TCP.

Para mais detalhes sobre documentações e configuração do CROSSROADS, visite o site oficial em: https://crossroads.e-tunity.com/.

XR Corssroads permite muitas maneiras de melhorar o desempenho do seu servidor, proteger o tempo de inatividade e tornar suas tarefas administrativas mais fáceis e práticas. Espero que tenham gostado do guia e fiquem à vontade para comentar abaixo as sugestões e esclarecimentos. Mantenha contato com a Tecmint para obter instruções úteis.

Leia também: Instalando o Pound Load Balancer para controlar a carga do servidor Web