Ich habe ein paar API-Endpunkte, die ich unter einem einzigen Standort /api
mit Unterpfaden zu verschiedenen Endpunkten bereitstellen möchte. Insbesondere möchte ich, dass webdis unter /api
und eine proprietäre API unter verfügbar sind /api/mypath
.
Ich mache mir keine Sorgen über Konflikte mit der webdis-API, da ich Unterpfade verwende, bei denen es unwahrscheinlich ist, dass sie mit den Namen von Redis-Befehlen in Konflikt geraten. Außerdem habe ich die volle Kontrolle über das Design der API, um Konflikte zu vermeiden.
Hier ist die Konfigurationsdatei von meinem Testserver, auf den ich gehackt habe:
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/;
#}
}
Wie kann ich meine Problemumgehung so ändern, dass alle Anforderungen an /api/mypath/*
den Endpunkt an Port 3936 und alle anderen an Port 7379 gesendet werden?
tried this to no avail
? Was ist passiert, als Sie diese Standortanweisung aktiviert haben? Verbindungszeitüberschreitung? Standort stimmt nicht überein?