Estoy intentando enviar una solicitud por proxy a diferentes destinos dependiendo de una variable de entorno. Mi enfoque fue poner la URL objetivo en la variable personalizada $ target y darle esto a proxy_pass.
Pero el uso de una variable con proxy_pass no parece funcionar. Esta simple configuración lleva a una respuesta de "502 Bad Gateway" desde nginx.
server {
listen 8080;
server_name myhost.example.com;
access_log /var/log/nginx/myhost.access.log;
location /proxy {
set $target http://proxytarget.example.com;
proxy_pass $target;
}
}
La misma configuración sin las obras de variables:
server {
listen 8080;
server_name myhost.example.com;
access_log /var/log/nginx/myhost.access.log;
location /proxy {
proxy_pass http://proxytarget.example.com;
}
}
¿Es realmente posible utilizar PROXY_PASS esta manera o solo estoy haciendo algo mal?
FYI, Nginx no utiliza/etc/hosts, con o sin resolver: http: //serverfault.c om/questions/357719/nginx-domain-resolver – richardkmiller
No funciona para mí. Establecí una variable, pero parece que nginx no puede resolverlo si se usa en la directiva proxy_pass. En proxy_redirect, la misma variable funciona como se esperaba. – shylynx
No ** Utilice ** un servidor DNS de acceso público, como '8.8.8.8'. [Para evitar la falsificación de DNS, se recomienda configurar los servidores DNS en una red local de confianza debidamente asegurada.] (Http://nginx.org/en/docs/http/ngx_http_core_module.html#resolver) – Tim