в настоящее время у меня это как мой proxy_pass
который отлично работает
location = /sms/resetpass {
proxy_pass http://xxx.xxx.xxx.xxx/api/resetpass;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
приведенное выше работает нормально, но я подумал, нужен ли мне другой прокси, например
location = /sms/sample1 {
proxy_pass http://xxx.xxx.xxx.xxx/api/sample1;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
тогда я должен сделать еще один location block
можно ли сделать что-то подобное?
location = /sms/something_here {
proxy_pass http://xxx.xxx.xxx.xxx/api/something_here;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
где something_here
означает, что если я передам какой-либо URL в sms/blah
затем proxy_pass
было бы api/blah
Я пробовал погуглить что-то вроде proxy_pass with subpath
или что-то в этом роде, но, похоже, это не то, что мне нужно. Так что мне интересно, возможно ли это, или я просто не знал правильного слова, чтобы это найти?
Заранее благодарим за любые советы.
Используйте nginx location
и rewrite
директивы, вроде этого должно быть хорошо:
location ~ ^/sms/ {
rewrite ^/sms/(.*) /api/$1 break;
proxy_pass http://1.2.3.4;
...
}
не забудьте сначала проверить это.