o balanceamento de carga nginx não funciona [fechado]

1

Eu experimentei o problema na configuração de balanceamento de carga do nginx. o servidor de balanceamento de carga não deseja encaminhar para nenhum servidor de back-end.

Eu configurei a configuração do servidor conforme abaixo:

Hostname                ip_address      role
nginx-node1.phann.net   172.17.45.103   nginx webserver
nginx-node2.phann.net   172.17.45.107   nginx webserver
nginx-node3.phann.net   172.17.45.108   nginx webserver
phann.net               172.17.45.113   load balancer

minha configuração do balanceador de carga em " /etc/nginx/conf.d/load-balancer.conf ",    usando vhost , conforme descrito abaixo:

upstream website  {
   server nginx-node1.phann.net;
   server nginx-node2.phann.net;
   server nginx-node3.phann.net;
}
server {
   listen 80; # Listen on the external interface
   location / {
        proxy_pass  http://website;
   }
}

Para além disso, também tenho php enable em todos os servidores. minha configuração está bem e nada de erro.

como configuração alternativa, também tentei substituir o nome do host por endereços IP.

upstream website  {
   server  172.17.45.103;
   server  172.17.45.107;
   server  172.17.45.108;
}
server {
   listen 80; # Listen on the external interface
   location / {
        proxy_pass  http://website;
   }
}

Finalmente, quando testei o servidor de balanceamento de carga, ele sempre mostra a página da web padrão do nginx, ele não encaminha para o node1 até o nó3. mas eu verifiquei que tudo é apropriado. Eu estou querendo saber em qual parte eu estou faltando ou cometer um erro na configuração. Fiz muita pesquisa, mas ainda não consegui entender porque " upstream " não está funcionando.

Estou usando o tutorial de: link

    
por Phann 25.01.2018 / 11:43

2 respostas

0

A configuração do balanceador de carga NGinx está ok.

O problema é você não ter seus nomes em DNS e NGinx, ou pelo menos proxy_pass por padrão não obtendo nomes de /etc/hosts para o resolvedor DNS como outros aplicativos Linux.

Veja O proxy_pass não resolve o DNS usando o / etc / hosts

Se você não estiver lidando com vhosts, uma solução temporária mais fácil do que a proposta nesse link está na configuração do NGinx, usando endereços IP em vez de FQDNs.

    
por 25.01.2018 / 12:03
0

Extraído da pergunta porque esta é uma resposta:

Então, eu encontrei o problema. Como deixei /etc/nginx/nginx.conf por padrão, há dupla definição de server {..} script.

verifica-se que o script server {..} em /etc/nginx/nginx.conf , deve ser excluído ou comentado, para que a declaração do script server {..} em /etc/nginx/conf.d/load-balancer.conf possa ser executada.

    
por 05.03.2018 / 21:51