Вот так proxy_pass
работает.Если вы используете переменную в значении, вам нужно предоставить весь URI.Подробнее см. в этом документе ;
Вы можете использовать регулярное выражение location
.Например:
location ~ ^/dirA/(.*)$ {
set $endpoint server1;
proxy_pass http://$endpoint:8888/dirB/dirC/$1;
}
Обратите внимание, что порядок расположения регулярных выражений является значительным.Подробнее см. в этом документе .
Кроме того, rewrite...break
также должен работать.
location ^~ /dirA/ {
set $endpoint server1;
rewrite ^/dirA/(.*)$ /dirB/dirC/$1 break;
proxy_pass http://$endpoint:8888;
}