Solución:
Debe definir el puerto en cada server
entrada en upstream
. Si no lo hace, nginx lo configurará en 80
. Entonces server 10.240.0.26;
en realidad significa server 10.240.0.26:80;
.
Sin embargo, podría definir varios bloques ascendentes:
upstream production_1234 {
server 10.240.0.26:1234;
server 10.240.0.27:1234;
}
upstream production_4321 {
server 10.240.0.26:4321;
server 10.240.0.27:4321;
}
server {
listen 80;
server_name some.host;
location / {
proxy_pass http://production_1234;
}
}
server {
listen 80;
server_name other.host;
location / {
proxy_pass http://production_4321;
}
}
Otra opción es configurar su DNS local para resolver el nombre de host production
a varias IP, y en este caso nginx las usará todas.
http://nginx.org/r/proxy_pass: si un nombre de dominio se resuelve en varias direcciones, todas se utilizarán de forma rotatoria.
server {
listen 80;
server_name some.host;
location / {
proxy_pass http://production:1234;
}
}
Cuando usa upstreams, los puertos se definen en los bloques upstream:
upstream production {
server 10.240.0.26:8080;
server 10.240.0.27:8081;
}
En otras palabras, nginx resuelve proxy_pass
argumento ya sea a un grupo aguas arriba o un host:port
par. Cuando usa una variable como argumento, solo se resuelve como host:port
par.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)