nginx: anexar ao URL com proxy com proxy_pass

nginx: anexar ao URL com proxy com proxy_pass

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.come o api.app.com. O que considero uma solução decente é fazer com que api.app.comas solicitações sejam proxy my.app.comcom um /apiprefixo 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/somethingrealmente 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;
}

informação relacionada