Если я правильно понимаю, вы хотите удалить первую часть URI.Есть несколько способов сделать это, но самый простой из них, вероятно, с помощью директивы alias, которая удалит часть URI, которая соответствует текущему блоку местоположения:
location /foo/ {
alias /home/myname/APP-Server/static-root/; # It doesn't really matter what you put here, since you're proxying everything.
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://app_server;
}
Если ваш сервер Nginx работает наfoobar.example и вы запрашиваете http://foobar.example/foo/bar
, вышестоящий сервер увидит запрос на http://foobar.example/bar
.
Директива псевдонима может быть немного ошибочной / неинтуитивной, поэтому лучше всего сохранять директиву location на верхнем уровне(не вложенный в другие блоки местоположения) и настолько простой, насколько это возможно.
Если вместо этого вы хотите добавить префикс к URI, вы можете сделать это в самой директиве proxy_pass:
location @proxy_to_app {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://app_server/foo$uri$is_args$args;
}
Если ваш сервер Nginx работает на foobar.example и вы запрашиваете http://foobar.example/bar
, вышестоящий сервер увидит запрос на http://foobar.example/foo/bar