Tôi có một vài điểm cuối API mà tôi muốn phân phát dưới một vị trí duy nhất /api
với các đường dẫn phụ đi đến các điểm cuối khác nhau. Cụ thể, tôi muốn webdis có sẵn tại /api
và API độc quyền có sẵn tại /api/mypath
.
Tôi không lo lắng về việc đụng độ với API webdis vì tôi đang sử dụng các đường dẫn phụ không có khả năng xung đột với tên lệnh redis và cũng có toàn quyền kiểm soát thiết kế API để tránh xung đột.
Đây là tập tin cấu hình từ máy chủ thử nghiệm của tôi mà tôi đã hack:
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/;
#}
}
Làm cách nào tôi có thể thay đổi cách giải quyết của mình để mọi yêu cầu /api/mypath/*
sẽ đi đến điểm cuối tại cổng 3936 và mọi thứ khác đến cổng 7379?
tried this to no avail
gì? Điều gì đã xảy ra khi bạn kích hoạt chỉ thị vị trí đó? Hết thời gian kết nối? Vị trí không phù hợp?