Ho un paio di endpoint API che desidero servire da un'unica posizione /api
con sottotracciati che vanno a endpoint diversi. In particolare, desidero che webdis sia disponibile su /api
e un'API proprietaria disponibile su /api/mypath
.
Non sono preoccupato per gli scontri con l'API webdis perché sto usando percorsi secondari che difficilmente si scontreranno con i nomi dei comandi redis e hanno anche il pieno controllo sulla progettazione dell'API per evitare gli scontri.
Ecco il file di configurazione dal mio server di test su cui ho hackerato:
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/;
#}
}
Come posso modificare la mia soluzione alternativa in modo che eventuali richieste /api/mypath/*
vadano all'endpoint alla porta 3936 e tutto il resto alla porta 7379?
tried this to no avail
? Che cosa è successo quando hai attivato quella direttiva sulla posizione? Connesione finita? Posizione non corrispondente?