Red Hat Training

A Red Hat training course is available for RHEL 8

2.5. Configurando o NGINX como um balanceador de carga HTTP

Você pode usar o recurso de proxy reverso NGINX para balancear o tráfego de carga. Este procedimento descreve como configurar o NGINX como um balanceador de carga HTTP que envia solicitações para diferentes servidores, com base em qual deles tem o menor número de conexões ativas. Se os dois servidores não estiverem disponíveis, o procedimento também define um terceiro host por razões de fallback.

Pré-requisitos

Procedimento

  1. Edite o arquivo /etc/nginx/nginx.conf e adicione as seguintes configurações:

    http {
        upstream backend {
            least_conn;
            server server1.example.com;
            server server2.example.com;
            server server3.example.com backup;
        }
    
        server {
            location / {
                proxy_pass http://backend;
            }
        }
    }

    A diretiva least_conn do grupo anfitrião backend define que a NGINX envia solicitações para server1.example.com ou server2.example.com, dependendo de qual anfitrião tem o menor número de conexões ativas. NGINX usa server3.example.com apenas como backup caso os outros dois hospedeiros não estejam disponíveis.

    Com a diretiva proxy_pass definida para http://backend, NGINX atua como um proxy reverso e usa o grupo anfitrião backend para distribuir solicitações com base nas configurações deste grupo.

    Em vez do método de balanceamento de carga least_conn, você pode especificar:

    • Nenhum método para usar round robin e distribuir os pedidos uniformemente entre os servidores.
    • ip_hash para enviar solicitações de um endereço de cliente para o mesmo servidor com base em um hash calculado a partir dos três primeiros octetos do endereço IPv4 ou de todo o endereço IPv6 do cliente.
    • hash para determinar o servidor com base em uma chave definida pelo usuário, que pode ser uma string, uma variável ou uma combinação de ambas. O parâmetro consistent configura que o NGINX distribui as solicitações por todos os servidores com base no valor da chave definida pelo usuário.
    • random para enviar solicitações para um servidor selecionado aleatoriamente.
  2. Reinicie o serviço nginx:

    # systemctl restart nginx