У меня есть сервис со структурой URL:
myservice.server.com
, но выпустили более позднюю версию, которую я хотел бы сделать доступной на myservice.server.com/v1
.
В моей конфигурации Nginx есть регулярное выражение местоположения, которое перехватывает входящий трафик, как следует:
location ~ "^/(?<version>v\d+)?(/.*)" {
где v1
часть URL будет храниться в переменной $version
.
Индексный файл для сайта ссылается на все свои файлы, используя относительные пути, например: scripts/myscript.js
но по какой-то причине вместо того, чтобы они были разрешены до myservice.server.com/v1/scripts/myscript.js
, его разрешение разрешено до myservice.server.com/scripts/myscript.js
.
Кто-нибудь знает, как задать для всех относительных путей разрешение myservice.server.com/v1/...
вместо myservice.server.com/...
?
Если это поможет, вот полный конфиг
server {
listen 80;
server_name myservice.server.com;
location / {
satisfy any;
proxy_bind 172.17.0.1;
proxy_pass http://[docker container ip and port];
proxy_set_header Host $host;
proxy_pass_request_headers on;
proxy_pass_request_body on;
}
location ~ "^/(?<version>v\d+)?(/.*)" {
satisfy any;
proxy_bind 172.17.0.1;
proxy_pass http://[docker container ip and port]$2$is_args$query_string;
proxy_set_header Host $host;
proxy_pass_request_headers on;
proxy_pass_request_body on;
}
}