Como configurar o nginx como um balanceador de carga com exemplo

Como configurar o nginx como um balanceador de carga com exemplo

Nginx é um software popular de servidor web de código aberto que também pode ser usado como um balanceador de carga. O balanceamento de carga é uma técnica que distribui o tráfego recebido em vários servidores para melhorar o desempenho, aumentar a disponibilidade e evitar sobrecarregar qualquer servidor único. Neste artigo, discutiremos como configurar o nginx como um balanceador de carga com um exemplo.

Para configurar o Nginx como um balanceador de carga, exigiu as seguintes etapas:

  1. Instale o Nginx Web Server
  2. Configure o upstream e adicione todos os nós de servidores de back -end
  3. Configurar proxy_pass Localização com o upstream
  4. Reinicie o servidor nginx para aplicar alterações
  5. Teste a configuração do balanceador de carga nginx

Vamos seguir as etapas uma a uma para completar a configuração do NGINX para atuar como um balanceador de carga.

Etapa 1: Instale o nginx

A primeira etapa é instalar o nginx no servidor que atuará como o balanceador de carga. O NGINX pode ser instalado na maioria das distribuições Linux usando o gerenciador de pacotes. Por exemplo, no Ubuntu, você pode executar o seguinte comando:

Atualização de sudo apt-get  sudo apt-get install nginx  

Nos sistemas baseados em RHEL, você pode usar o seguinte comando para instalar o nginx:

sudo yum install nginx  

O sistema moderno baseado em RHEL usa o DNF Package Manager.

Etapa 2: Configurar servidores upstream

O próximo passo é definir os servidores que receberão tráfego do balanceador de carga. Esses servidores são conhecidos como servidores upstream. Você pode defini -los no arquivo de configuração nginx /etc/nginx/nginx.conf. Abra o arquivo em um editor de texto e adicione o seguinte código:

http upstream myApp servidor 192.168.10.201; Servidor 192.168.10.202;
123456http upstream myApp servidor 192.168.10.201; Servidor 192.168.10.202;

Neste exemplo, definimos um grupo a montante nomeado "MyApp" Isso inclui dois servidores: 192.168.10.201 e 192.168.10.202. Estes são os servidores que receberão tráfego do balanceador de carga.

Etapa 3: Configurar o balanceador de carga

Agora que definimos nossos servidores a montante, podemos configurar o balanceador de carga. Adicione o seguinte código ao bloco HTTP em nginx.conf:

http upstream myApp servidor 192.168.10.201; Servidor 192.168.10.202; servidor Ouça 80; localização/proxy_pass http: // myApp;
12345678910111213http upstream myApp servidor 192.168.10.201; Servidor 192.168.10.202; servidor Ouça 80; localização/proxy_pass http: // myApp;

Neste código, definimos um bloco de servidor que ouve na porta 80 (a porta HTTP padrão). O local / bloco especifica o caminho da URL que deve ser roteado para os servidores a montante. O proxy_pass A diretiva diz ao nginx para encaminhar solicitações de entrada para o "MyApp" Grupo a montante que definimos anteriormente.

Etapa 4: reinicie o nginx

Finalmente, reinicie o nginx para aplicar as alterações no arquivo de configuração. Execute o seguinte comando:

SUDO Service Nginx Reiniciar  

Etapa 5: testando o balanceador de carga

Para testar o balanceador de carga, podemos usar um navegador da web ou uma ferramenta como o CURL para enviar solicitações HTTP para o servidor. Quando acessarmos o URL configurado no local / bloco, o Nginx encaminhará a solicitação a um dos servidores a montante no "MyApp" grupo.

Se tudo estiver funcionando corretamente, você deve ver a resposta de um dos servidores a montante. Você pode confirmar que a carga está sendo equilibrada nos dois servidores, refrescando a página várias vezes e verificando o endereço IP do servidor que responde a cada solicitação.

Conclusão

Configurar o NGINX como balanceador de carga é um processo direto que pode ajudar a melhorar o desempenho e a disponibilidade de aplicativos da Web. Ao definir servidores upstream e configurar o balanceador de carga, você pode distribuir tráfego de entrada em vários servidores e evitar sobrecarregar qualquer servidor único.