Sto provando a inoltrare una richiesta a target diversi a seconda di una variabile di ambiente. Il mio approccio era quello di inserire l'URL di destinazione nella variabile personalizzata $ target e assegnarlo a proxy_pass.
Ma l'utilizzo di una variabile con proxy_pass non sembra funzionare. Questa semplice configurazione porta ad una risposta "502 Bad Gateway" da 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 stessa configurazione senza le opere variabili:
server {
listen 8080;
server_name myhost.example.com;
access_log /var/log/nginx/myhost.access.log;
location /proxy {
proxy_pass http://proxytarget.example.com;
}
}
Non è davvero possibile utilizzare proxy_pass in questo modo o sto solo facendo qualcosa di sbagliato?
FYI, Nginx non usa/etc/hosts, con o senza resolver: http: //serverfault.c om/questions/357719/nginx-domain-resolver – richardkmiller
Non funziona per me. Ho impostato una variabile, ma sembra che nginx non possa risolverlo se usato nella direttiva proxy_pass. In proxy_redirect la stessa variabile funziona come previsto. – shylynx
Do ** NOT ** usa un server DNS accessibile pubblicamente come '8.8.8.8'. [Per prevenire lo spoofing del DNS, si consiglia di configurare i server DNS in una rete locale affidabile e protetta.] (Http://nginx.org/en/docs/http/ngx_http_core_module.html#resolver) – Tim