У мене є кілька кінцевих точок 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
? Що сталося, коли ви включили цю директиву про місцезнаходження? Час очікування з'єднання? Місце не збігається?