Можно ли использовать Nginx proxy_pass для перезаписи URL-адреса, как показано ниже:
location /foo {
proxy_pass http://external-server-IP:8080/some/path/;
}
Можно ли использовать Nginx proxy_pass для перезаписи URL-адреса, как показано ниже:
location /foo {
proxy_pass http://external-server-IP:8080/some/path/;
}
На всякий случай, если кому-то это еще нужно, простой способ сделать это:
location ~ ^/foo/.* {
rewrite ^/foo(.*) /$1 break;
proxy_pass https://external-server:8080/remote-path/;
}
rewrite ^/foo$ /foo/ redirect;
Это означает, что он отправляет запрос на внешний сервер, маскируя его под вашим собственным доменом.
rewrite ^/foo(.*) /$1 break;
Первое изменение заключается в том, чтобы просто удалить добавленный путь URL-адреса (удаленный сервер этого не ожидает.
rewrite ^/foo$ /foo/ redirect;
И вторая перезапись на тот случай, если вы захотите использовать индексную страницу, чтобы она также перешла на удаленную индексную страницу.
proxy_pass
передает запрос (обычно) на интерфейс шлюза (CGI, WSGI и т. Д.). См. документы. - person Keenan Lawrence   schedule 27.10.2016proxy_pass
документацию, но исходный и целевой URI должны оканчиваться на/
, или ни один из них не заканчивается на/
. В противном случае используйтеrewrite ... break
. - person Richard Smith   schedule 27.10.2016