Ferramentas do usuário

Ferramentas do site


nginx:load-balance

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;
}
  • weight: Determina o peso do servidor no pool, diretamente proporcional a utilização. Quando não declarado, o valor é 1.
  • backup: Servidor do pool que entra em atividade quando os demais falham.
  • down: Servidor declarado como desativado pelo pool. Ideal para manutenção.

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]
  • [secure]: Session persistence apenas em HTTPS.
  • [expires]: Tempo (t) de expiração do sticky de sessão
  • [hash]: Determina o hash (h) criptográfico do cookie de sessão. Pode ser md5 ou sha1. Quando não informado o padrão é md5.

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

nginx/load-balance.txt · Última modificação: 27/04/2021 12:05 por 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki