
Estou lidando com alguns problemas herdados em que preciso reconfigurar servidores que hospedam um aplicativo baseado em PHP. Uma das decisões foi mudar do Apache para o Nginx.
Agora o aplicativo hospeda dois tipos de respostas;
/some/path -> HTML templates
/api/some/path -> JSON
A aplicação é baseada em Laravel. Agora, tenho dois hosts virtuais my.app.com
e o api.app.com
. O que considero uma solução decente é fazer com que api.app.com
as solicitações sejam proxy my.app.com
com um /api
prefixo no caminho da solicitação. Então;
GET api.app.com/user -> NGINX PROXY -> my.app.com/api/user
Não sou especialista em configuração Nginx e é isso que acho que deveria funcionar:
location / {
proxy_pass http://my.app.com:8888/api;
proxy_set_header X-Real-IP $remote_addr;
}
A ideia é garantir que as pessoas que tentam GET api.app.com/something
realmente obtenham uma resposta de my.app.com/api/something
Mas isso não funciona. Continuo recebendo exceções do aplicativo dizendo que o caminho não pode ser encontrado nas rotas.
Alguém pode me dizer o que está acontecendo aqui?
Responder1
Uma dica dehttps://serverfault.com/a/586607:
location ~ /(?<path>.*) {
proxy_pass http://my.app.com:8888/api/$path;
proxy_set_header X-Real-IP $remote_addr;
}