У меня есть пара конечных точек API, которые я хочу обслуживать из-под одного местоположения /api
с подпутями, идущими к различным конечным точкам. В частности, я хочу, чтобы webdis был доступен по адресу, /api
а проприетарный API доступен по адресу /api/mypath
.
Меня не беспокоит конфликт с API webdis, потому что я использую подпути, которые вряд ли конфликтуют с именами команд redis, а также имею полный контроль над дизайном API, чтобы избежать конфликтов.
Вот файл конфигурации с моего тестового сервера, который я взломал:
server {
listen 80;
server_name localhost;
server_name 192.168.3.90;
server_name 127.0.0.1;
location / {
root /home/me/src/phoenix/ui;
index index.html;
}
# temporary hardcoded workaround
location = /api/mypath/about {
proxy_pass http://localhost:3936/v1/about;
}
location /api {
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://localhost:7379/;
}
# tried this but it gives "not found" error
#location ^~ /api/mypath/ {
# rewrite ^/api/mypath/(.*)$ /$1 break;
# proxy_pass http://localhost:3936/v1/;
#}
#
#location ^~ /api {
# rewrite ^/api/(.*)$ /$1 break;
# proxy_pass http://localhost:7379/;
#}
}
Как я могу изменить мой обходной путь, чтобы любые запросы к /api/mypath/*
отправлялись на конечную точку на порту 3936, а все остальное на порт 7379?
tried this to no avail
? Что произошло, когда вы включили эту директиву местоположения? Время соединения вышло? Место не соответствует?