Tabela de conteúdos

Load Balance (Nginx)

Upstream

Upstream é um “pool” onde são declarados o conjunto de servidores que recebem o balanceamento de carga.

upstream pool-ufrj {
     server 192.168.0.1:80;
     server 192.168.0.2:80 weight=2;
     server 192.168.0.3:80 backup;
     server 192.168.0.4:80 down;
}

Obs.: Apenas o servidor de gere o balanceamento de carga precisa de IP público.

Session persistance (sticky)

Obs.: Este recurso não existe na versão em pacote do Nginx, portanto é necessário recompilar um Nginx com o módulo sticky

O recurso sticky é útil quando queremos que as sessões sejam mantidas no load balance. O sticky prende as requisições do usuário no servidor que iniciou a sessão evitando perdas repentinas de sessão. Esta diretiva é aplicada dentro do bloco upstream.

Mais detalhes sobre esta diretiva veja AQUI (seção Usage)

upstream pool-ufrj {
     sticky;
     [...]
}

Sintaxe:

  sticky [secure] [expires=t] [hash=h]

Exemplo de VirtualHost utilizando Load Balance

upstream pool-ufrj {
     server 192.168.0.1:443 weight=2; # servidor01
     server 192.168.0.2:443 weight=1; # servidor02
     server 192.168.0.3:443 backup;   # servidor03
}
 
server {
   server_name meusite.ufrj.br
   listen 80;
        location / {
            proxy_pass https://pool-ufrj;
            index index.php index.html;
}

* O upstream é informado na diretiva proxy_pass

Fontes