Iniciante Fundamentos
Balanceamento de carga
Quando uma aplicação roda em vários servidores, o Nginx pode distribuir o tráfego entre eles. Isso é o balanceamento de carga e melhora desempenho e disponibilidade.
O bloco upstream
Primeiro você agrupa os servidores em um bloco upstream:
http {
upstream app {
server 127.0.0.1:3001;
server 127.0.0.1:3002;
server 127.0.0.1:3003;
}
}
Depois aponta o proxy_pass para esse grupo pelo nome:
server {
listen 80;
location / {
proxy_pass http://app;
}
}
Métodos de distribuição
Por padrão o Nginx usa round-robin, alternando entre os servidores em ordem.
Para enviar ao servidor com menos conexões ativas, use least_conn:
upstream app {
least_conn;
server 127.0.0.1:3001;
server 127.0.0.1:3002;
}
Pesos
Você pode dar mais tráfego a um servidor mais forte com weight:
upstream app {
server 127.0.0.1:3001 weight=3;
server 127.0.0.1:3002 weight=1;
}
Resumo
Agrupe servidores em upstream e aponte o proxy_pass para o grupo. O padrão é round-robin, mas você pode usar least_conn ou pesos para ajustar a distribuição.