перенаправление nginx на другую версию api

#nginx

Вопрос:

Здравствуйте, я настраиваю nginx, но у меня проблема ниже.

Мой API будет иметь другую версию

Например:

/v1/api/… => локальный хост:8081

/v2/api/… => локальный хост:8082

Если нет конкретного (api/…), перейдите к последней версии

Вот некоторые из моих настроек nginx, но я не могу сделать это правильно

 server {
  listen 80;
  listen 443  ssl;
  server_name  example.com;
  
  ssl_certificate /my.crt;
  ssl_certificate_key /my.rsa;

   access_log /var/log/nginx/access.log;
   client_max_body_size 600M;
   location /v1 {
      proxy_http_version 1.1;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header HOST $host;
      proxy_set_header X-NginX-Proxy true;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection 'upgrade';
      proxy_cache_bypass $http_upgrade;

      proxy_pass http://localhost:8081;
      proxy_redirect off;

      # prevents 502 bad gateway error
      proxy_buffers 8 32k;
      proxy_buffer_size 64k;
  }

   location /v2 {
      proxy_http_version 1.1;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header HOST $host;
      proxy_set_header X-NginX-Proxy true;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection 'upgrade';
      proxy_cache_bypass $http_upgrade;

      proxy_pass http://localhost:8082;
      proxy_redirect off;

      # prevents 502 bad gateway error
      proxy_buffers 8 32k;
      proxy_buffer_size 64k;
  }

   location / {
     rewrite ^/(.*)$ http://example.com/v2$1 permanent;
   }
}
 

Кто-нибудь может помочь?

Комментарии:

1. тебе не хватает одной черты, rewrite ^/(.*)$ http://example.com/v2/$1 permanent;

2. И вы, вероятно, не хотите делать это постоянным, например: return 302 /v2$request_uri;