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;
}

Postagens mais visitadas deste blog

Lab com video, RTSP e Kubernetes

vnStat

HTTPie