NGINX Load Balancer

Já parou para pensar que pode existir um gargalo na sua infraestrutura porque você tem muitos mil acessos e um único servidor web para atender a toda essa demanda? Se você compartilha desse cenário recomendo seguir a leitura desse post e considerar configurar um load balancer no seu NGINX.

Sempre muito importante explicar um pouco do conceito, dessa vez para agilizar as coisas recorri a um site bastante conhecido - wikipedia - Balanceamento de carga ou Load balancer(em inglês), em rede de computadores, é uma técnica para distribuir a carga de trabalho uniformemente entre dois ou mais computadores, enlaces de rede, discos rígidos ou outros recursos, a fim de otimizar a utilização de recursos, maximizar o desempenho, minimizar o tempo de resposta e evitar sobrecarga. Utilizando múltiplos componentes com o balanceamento de carga, em vez de um único componente, pode aumentar a confiabilidade através da redundância.
 

Importante ressaltar que o algorítimo padrão para funcionamento do balanceamento de carga do NGINX é o round-robin. Isso não quer dizer que você precisa ficar preso nele, veja na documentação que é possível ajustar isso conforme sua necessidade.
Primeiro passo é indicar quais maquinas pertencem ao load balancer. Crie um arquivo *.conf (pode usar qualquer nome, usei mpdocs) dentro do diretório NGINX_HOME/sites-enabled/ do seu servidor web,
vim NGINX_HOME/sites-enabled/mpdocs.conf
Obs: NGINX_HOME é uma referencia ao diretório NGINX do seu servidor, o padrão é /etc/nginx/.

Arquivo de criado? Indique o uptream conforme descrito abaixo:
upstream mpdocs{
        server ENDEREÇO_IP:PORTA;
        server ENDEREÇO_IP:PORTA;  
    }
Certamente dentro do NGINX_HOME/default.conf você vai ter um location apontado para raiz, semelhante ao indicado abaixo, altere o valor para que haja um apontamento para o upstream que acabou de configurar.
location / {
            proxy_pass http://mpdocs;
        }
Nas maquinas que vão compor o load balancer, vamos editar o arquivo default.conf, localizado dentro do NGINX_HOME e indicar para qual destino elas vão apontar. Nesse tutorial eu vou apontar para o blog, lembrando que você pode indicar para qualquer outra coisa.
location / {
         proxy_pass www.pviana.com.br;
}
Caso tenha ficado alguma duvida ou alguma coisa deu errado, veja o video abaixo. Tenho certeza que a soma do post com o video não vai deixar duvidas.


0 comentários: