upstream apache {
server 127.0.0.1:8080;
}
server{
location ~* ^/service/(.*)$ {
proxy_pass http://apache/$1;
proxy_redirect off;
}
}
Приведенный выше фрагмент будет перенаправлять запросы, URL-адрес которых включает строку «service», на другой сервер, но не включает параметры запроса.
parameters
nginx
Алекс Луя
источник
источник
location /service/ { rewrite ^\/service\/(.*) /$1 break; proxy_pass http://apache; }
Я использую слегка измененную версию второго подхода kolbyjack с
~
вместо~*
.источник
Я изменил код @kolbyjack, чтобы он работал на
с параметрами
источник
proxy_pass
выше директива выполняет перенаправление на стороне сервера.вам нужно использовать rewrite для передачи параметров с помощью proxy_pass вот пример, который я сделал для развертывания приложения angularjs на s3
Статический хостинг веб-сайтов S3 направляет все пути к Index.html
адаптированный к вашим потребностям, будет что-то вроде
если вы хотите попасть в http://127.0.0.1:8080/query/params/
если вы хотите попасть в http://127.0.0.1:8080/service/query/params/, вам понадобится что-то вроде
источник
/path/params
), но не параметры запроса (?query=params
)?github gist https://gist.github.com/anjia0532/da4a17f848468de5a374c860b17607e7
источник
Для перенаправления без строки запроса добавьте следующие строки в блоке сервера под строкой порта прослушивания:
Со строкой запроса:
источник
if
когда это возможно. В этом случае решение может быть правильным,location
как показано в других ответах.работал с добавлением $ request_uri proxy_pass http: // apache / $ request_uri;
источник