ฉันมีจุดปลาย API สองสามอย่างที่ฉันต้องการให้บริการจากตำแหน่งเดียวของที่/api
มีพา ธ ย่อยไปยังจุดปลายที่แตกต่างกัน โดยเฉพาะฉันต้องการ webdis จะสามารถใช้ได้ใน/api
และ API /api/mypath
ที่เป็นกรรมสิทธิ์ที่มีอยู่ใน
ฉันไม่กังวลเกี่ยวกับการปะทะกันกับ webdis API เพราะฉันใช้ subpaths ซึ่งไม่น่าจะขัดแย้งกับชื่อคำสั่ง 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
อะไร เกิดอะไรขึ้นเมื่อคุณเปิดใช้งานคำสั่งระบุตำแหน่งนั้น หมดเวลาเชื่อมต่อหรือไม่ ไม่ตรงกับตำแหน่ง?