Tengo un par de puntos finales API que quiero servir desde una sola ubicación /api
con subrutas que van a puntos finales diferentes. Específicamente, quiero que webdis esté disponible en /api
y una API patentada disponible en /api/mypath
.
No me preocupan los conflictos con la API webdis porque estoy usando subrutas que es poco probable que entren en conflicto con los nombres de los comandos de redis, y también tengo control total sobre el diseño de la API para evitar conflictos.
Aquí está el archivo de configuración de mi servidor de prueba que he estado pirateando:
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/;
#}
}
¿Cómo puedo cambiar mi solución para que cualquier solicitud /api/mypath/*
vaya al punto final en el puerto 3936 y todo lo demás al puerto 7379?
tried this to no avail
? ¿Qué pasó cuando habilitas esa directiva de ubicación? ¿El tiempo de conexión expiro? ¿Ubicación no coincidente?