Como Configurar Balanceamento de Carga com NGINX: Guia

Quer saber como configurar balanceamento de carga com NGINX? Pois, este guia é exatamente o que precisa! O balanceamento de carga no NGINX permite distribuir tráfego entre vários servidores, garantindo escalabilidade, desempenho e fiabilidade. Assim, neste tutorial, vamos explorar tudo de forma clara: desde o que é o balanceamento de carga, os preparativos necessários, até à configuração e teste final. O NGINX, reconhecido pela sua eficiência e robustez, torna esta tarefa acessível, mesmo para iniciantes. Ademais, se já lidou com proxies ou sites simples no NGINX, este é um passo lógico para expandir as suas competências. Porquê usar balanceamento de carga? Porque melhora a experiência do utilizador e evita sobrecarga em servidores individuais. Portanto, prepare-se para mergulhar neste guia prático e descubra como configurar balanceamento de carga com NGINX de maneira descomplicada e eficaz. Vamos começar, então?


O que é o Balanceamento de Carga no NGINX e Porquê Usá-lo?

Antes de tudo, o que significa balanceamento de carga no NGINX? Em resumo, é uma técnica em que o NGINX distribui pedidos de clientes entre múltiplos servidores backend, evitando que um único servidor fique sobrecarregado. Por exemplo, se tem um site popular, o NGINX pode enviar metade do tráfego para servidor1 e a outra metade para servidor2. Assim sendo, usa-se o bloco upstream para definir este grupo de servidores.

Então, porquê configurar balanceamento de carga com NGINX? Primeiramente, melhora a escalabilidade. À medida que o tráfego cresce, adicionar mais servidores torna-se simples, sem interromper o serviço. Em segundo lugar, aumenta a fiabilidade. Se um servidor falhar, o NGINX redireciona os pedidos para os restantes, garantindo disponibilidade. Por conseguinte, é ideal para sites com picos de utilização, como lojas online em dias de promoção.

Além disso, o NGINX é perfeito para isso. Desde 2004, destaca-se pela sua arquitetura assíncrona, como vimos em Como entender e editar os ficheiros de configuração do NGINX. Aliás, grandes plataformas como a Cloudflare usam-no assim. Outrossim, oferece desempenho: reduz latência ao distribuir carga de forma inteligente. Por outro lado, permite personalização com algoritmos variados, como veremos adiante.

Por fim, é uma solução económica. Em vez de hardware caro, usa o NGINX num servidor existente. Portanto, configurar balanceamento de carga com NGINX é essencial para quem quer um sistema robusto e preparado para crescer. Vamos preparar-nos, pois?


Pré-requisitos para Configurar Balanceamento de Carga com NGINX

Antes de mais nada, para configurar balanceamento de carga com NGINX, precisa de preparar o ambiente. Felizmente, os pré-requisitos são diretos, embora fundamentais. Vamos por partes, então:

NGINX Instalado e Ativo

Em primeiro lugar, o NGINX deve estar instalado e a funcionar. Se ainda não o fez, consulte os nossos guias: Como instalar NGINX no Ubuntu, Como instalar NGINX no Windows ou Como instalar NGINX no macOS. Para confirmar, execute nginx -v e, em seguida, sudo systemctl status nginx – deve mostrar “active”. Assim, terá a base pronta.

Múltiplos Servidores Backend

Depois, precisa de pelo menos dois servidores backend. Por exemplo, podem ser máquinas em 192.168.1.100:80 e 192.168.1.101:80, ou instâncias locais como localhost:3000 e localhost:3001. Certamente, cada um deve estar a correr – teste com curl http://192.168.1.100:80 para verificar.

Acesso às Configurações

Ademais, precisa de aceder aos ficheiros de configuração. No Ubuntu, estão em /etc/nginx/, no Windows em C:\nginx\conf\, e no macOS em /usr/local/etc/nginx/. Um editor como Nano (sudo nano) ou VS Code será útil – aliás, veja Como entender e editar os ficheiros de configuração do NGINX para mais detalhes.

Rede Funcional

Por conseguinte, garanta que os servidores estejam na mesma rede ou acessíveis via IP. Inclusive, uma ligação estável é essencial para testes.

Permissões

De igual forma, no Linux ou macOS, tenha permissões de administrador (use sudo). No Windows, execute como administrador.

Conhecimento Básico

Por fim, uma noção de proxies ajuda, mas não é obrigatória – veja Como configurar NGINX como proxy reverso se quiser aprofundar.

Portanto, com o NGINX e os backends prontos, está preparado para avançar, sem dúvida.


Passo a Passo: Como Configurar Balanceamento de Carga com NGINX

Agora, vamos configurar balanceamento de carga com NGINX na prática. Este processo é simples, embora exija atenção. Aqui está o guia, passo a passo:

Passo 1: Criar o Ficheiro de Configuração

Primeiramente, escolha onde configurar. Se no Ubuntu, crie um ficheiro em /etc/nginx/sites-available/:

sudo nano /etc/nginx/sites-available/loadbalance.conf

Agora no Windows, edite C:\nginx\conf\nginx.conf. No macOS, use /usr/local/etc/nginx/nginx.conf.

Passo 2: Definir o Upstream

Em seguida, configure o grupo de servidores com upstream:

upstream backend {
    server 192.168.1.100:80;
    server 192.168.1.101:80;
}

server {
    listen 80;
    server_name seusite.local;

    location / {
        proxy_pass http://backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
  • upstream: Define os backends.
  • proxy_pass: Encaminha pedidos para o grupo.

Passo 3: Escolher um Algoritmo (Opcional)

Depois, ajuste o método de balanceamento. Por padrão, usa round-robin (distribuição cíclica). Para pesos:

upstream backend {
    server 192.168.1.100:80 weight=2;
    server 192.168.1.101:80 weight=1;
}
  • weight: Dá mais pedidos ao primeiro servidor.

Ou use least_conn para menos conexões ativas:

upstream backend {
    least_conn;
    server 192.168.1.100:80;
    server 192.168.1.101:80;
}

Passo 4: Ativar a Configuração

No Ubuntu, ative o ficheiro:

sudo ln -s /etc/nginx/sites-available/loadbalance.conf /etc/nginx/sites-enabled/

No Windows ou macOS, pule esta etapa se editou o ficheiro principal.

Passo 5: Testar e Recarregar

Por conseguinte, teste a sintaxe:

sudo nginx -t

Se aparecer “syntax is ok”, recarregue:

sudo nginx -s reload

No Windows:

nginx -s reload

Configuração Simples Local

Por exemplo, para testar localmente:

upstream backend {
    server localhost:3000;
    server localhost:3001;
}

Assim, configurou configurar load balancing NGINX. Vamos verificar, então!


Testar e Verificar o Balanceamento de Carga no NGINX

Com a configuração pronta, é hora de testar. Afinal, configurar balanceamento de carga com NGINX só faz sentido se o tráfego for distribuído corretamente.

Aceder ao Site

Em primeiro lugar, abra o navegador e digite http://seusite.local. Atualize várias vezes – cada backend deve responder alternadamente (ex.: “Server 1”, “Server 2”). Inclusive, se usou pesos, verá o servidor com maior peso responder mais.

Confirmar nos Registos

Depois, verifique os registos para confirmar:

  • Ubuntu/macOS:
    sudo tail -f /var/log/nginx/access.log
  • Windows: C:\nginx\logs\access.log

Procure por IPs ou portas diferentes em cada pedido. Por conseguinte, verá a distribuição em ação.

Usar Ferramentas

Ademais, teste com curl:

curl http://seusite.local

Repita várias vezes para observar a alternância.

Resolver Erros

Por outro lado, se aparecer “502 Bad Gateway”, um backend pode estar offline – teste com curl http://192.168.1.100:80. Se todos falharem, reveja o upstream. Em contrapartida, para “404”, confirme o proxy_pass. Veja Como resolver problemas comuns do NGINX se precisar.

Verificar Pesos

Sobretudo, com pesos, note a frequência – um weight=2 deve aparecer duas vezes mais.

Testar Falha

Por exemplo, desligue um backend e recarregue – o NGINX deve ignorá-lo automaticamente.

Portanto, o seu NGINX escalabilidade está funcional. Para proxies, veja Como configurar NGINX como proxy reverso.


Dicas Avançadas para Balanceamento de Carga no NGINX

Com o balanceamento ativo, aqui estão dicas para otimizar, pois:

Usar Health Checks

Primeiramente, adicione verificações de saúde (requer NGINX Plus ou módulo extra):

upstream backend {
    server 192.168.1.100:80 max_fails=3 fail_timeout=30s;
    server 192.168.1.101:80 max_fails=3 fail_timeout=30s;
}
  • max_fails: Marca o servidor como inativo após falhas.

Configurar Cache

Depois, melhore com cache:

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m;
location / {
    proxy_cache my_cache;
    proxy_pass http://backend;
}

Ajustar Sessões

Ademais, use ip_hash para sessões persistentes:

upstream backend {
    ip_hash;
    server 192.168.1.100:80;
    server 192.168.1.101:80;
}

Proteger com SSL

Por conseguinte, adicione HTTPS – veja Como configurar SSL/TLS no NGINX:

listen 443 ssl;
ssl_certificate /etc/ssl/cert.pem;

Timeout e Buffers

Por fim, ajuste tempos:

proxy_read_timeout 120s;
proxy_buffer_size 128k;

Assim, distribuir tráfego NGINX fica mais robusto. Para desempenho, explore Como otimizar o desempenho do NGINX.


Perguntas Frequentes Sobre Configurar Balanceamento de Carga com NGINX

Aqui estão respostas a dúvidas sobre configurar balanceamento de carga com NGINX, então:

Quantos servidores posso adicionar?

Em primeiro lugar, não há limite fixo – depende da capacidade do NGINX e da rede.

Porquê “502 Bad Gateway”?

Depois, pode ser um backend offline ou porta errada.

Posso usar localmente?

Sim, aliás, use portas como 3000 e 3001 para testes.

Como vejo a distribuição?

Por exemplo, nos registos ou com ferramentas como curl. Se falhar, veja Como resolver problemas comuns do NGINX.

Funciona com HTTPS?

Certamente, configure SSL – veja Como configurar SSL/TLS no NGINX.

Qual o melhor algoritmo?

Por fim, depende: round-robin para simplicidade, least_conn para carga variável.

Portanto, este tutorial balanceamento NGINX esclarece tudo.


Conclusão

Configurar balanceamento de carga com NGINX é uma tarefa poderosa e acessível, sem dúvida. Neste guia, descobrimos o que é, como configurá-lo e como testá-lo, tudo com passos claros. Agora, pode distribuir tráfego e escalar os seus projetos com confiança. Ademais, as dicas avançadas e links como Como otimizar o desempenho do NGINX ou Como configurar NGINX como proxy reverso abrem portas para mais possibilidades. Por outro lado, se algo correr mal, Como resolver problemas comuns do NGINX está à disposição. Em resumo, continue a explorar, por conseguinte, e transforme o NGINX numa solução robusta para os seus servidores!

Pode fazer uma doação para ajudar a mater o site, Obrigado!