#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;