Nginx URL версии - PullRequest
       10

Nginx URL версии

0 голосов
/ 08 мая 2018

У меня есть сервис со структурой 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;
    }
}
...