Qual è la soluzione più rapida e pulita se si desidera eseguire il proxy di richiesta URL a due diversi backend tramite proxy basato sulla posizione.Nginx per posizione/pass rewriten uri a proxy_pass
location /app1/ {
alias /var/www/ruby/public;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
try_files $uri $uri/ @ruby;
}
location @ruby {
proxy_pass http://127.0.0.1:3000;
}
location /app2/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
try_files $uri $uri/ @other;
}
location @other {
proxy_pass http://127.0.0.1:8080;
}
Con questa configurazione nginx pass "/ app1" o "/ app2" per delega e back-end non riconosce il comando/url ..
come per esempio vorrebbe passare a http://127.0.0.1:3000
solo /messages
quando si accede a http://<nginx>/app1/messages
- ma nella configurazione di cui sopra anche passare /app1/
come http://127.0.0.1:3000/app1/messages
. Lo stesso vale per /app2
Questo non lavorare a causa di '" proxy_pass non può avere URI parte nella posizione data dall'espressione regolare ... "", vedere http://stackoverflow.com/questions/21662940/proxy-pass-cannot-have-uri-part-in-location. – frhd