
Estoy lidiando con algunos problemas heredados en los que tengo que reconfigurar servidores que alojan una aplicación basada en PHP. Una de las decisiones fue pasar de Apache a Nginx.
Ahora la aplicación alberga dos tipos de respuestas;
/some/path -> HTML templates
/api/some/path -> JSON
La aplicación está basada en Laravel. Ahora tengo dos hosts virtuales my.app.com
y api.app.com
. Lo que he pensado como una solución decente es enviar api.app.com
las solicitudes my.app.com
con un /api
prefijo antepuesto a la ruta de la solicitud. Entonces;
GET api.app.com/user -> NGINX PROXY -> my.app.com/api/user
No soy un experto en la configuración de Nginx y esto es lo que creo que debería funcionar:
location / {
proxy_pass http://my.app.com:8888/api;
proxy_set_header X-Real-IP $remote_addr;
}
La idea es garantizar que las personas que intentan OBTENER api.app.com/something
realmente obtengan una respuesta. my.app.com/api/something
Pero eso no funciona. Sigo recibiendo excepciones de la aplicación que dicen que no se puede encontrar la ruta en las rutas.
¿Alguien puede decirme qué está pasando aquí?
Respuesta1
Un consejo dehttps://serverfault.com/a/586607:
location ~ /(?<path>.*) {
proxy_pass http://my.app.com:8888/api/$path;
proxy_set_header X-Real-IP $remote_addr;
}