A diretiva “upstream” do nginx tem uma configuração de porta?

1

movido de: link

Eu uso upstream e proxy para balanceamento de carga.

A diretiva proxy_pass http://upstream_name usa a porta padrão, que é 80.

No entanto, se o servidor upstream não escutar nessa porta, a solicitação falhará.

Como especifico uma porta alternativa?

minha configuração:

http{
#...
upstream myups{
 server 192.168.1.100:6666;
server 192.168.1.101:9999;
}
#....
server{
listen 81;
#.....
location ~ /myapp {
 proxy_pass http://myups:81/;
}
}

nginx -t:

[warn]: upstream "myups" may not have port 81 in /opt/nginx/conf/nginx.conf:78.
    
por Community 28.09.2010 / 02:28

2 respostas

4

Acho que você está interpretando mal o significado da linha:

proxy_pass http://myups;

Esta linha está dizendo ao nginx para passar o pedido para um dos servidores listados no bloco 'upstream myups'. Ele não vai voltar para a internet para enviar uma solicitação para URL para o proxy_pass.

Em outras palavras, quando uma requisição chega ao servidor nginx na porta 81 para o hostname que você especificou, ela passará a requisição para 192.168.1.100:6666, ou 192.168.1.101:9999.

Espero que isso limpe um pouco.

    
por 25.10.2010 / 00:10
1

Você deve definir a porta apenas em instruções "server" dentro da definição "upstream".

(Em qual porta ele escuta? 6666, 9999 ou 81?)

    
por 24.10.2010 / 22:23

Tags