Eu tenho solicitações de proxy do NGINX para vários serviços em execução na máquina, com diretivas de localização como abaixo -
location = / {
proxy_pass http://localhost:5000;
}
location / {
proxy_pass http://localhost:8080;
}
location ^~ /index.html {
proxy_pass http://localhost:5000;
}
location ^~ /static/ {
proxy_pass http://localhost:5000;
}
location ~* .(config.json|service-worker.js)$ {
proxy_pass http://localhost:5000;
}
Tudo isso está funcionando corretamente, mas eu tenho outro serviço para o qual eu quero passar o caminho de solicitação reescrito com o prefixo removido. Ou seja, o pedido para
https://myserver.com/service
e https://myserver.com/service/some/path
deve ser passado para o serviço como
http://localhost:8761
e http://localhost:8761/some/path
, respectivamente
Observe que, para os outros serviços, o caminho completo precisa ser passado. Eu tentei a configuração abaixo -
location /service/ {
proxy_pass http://localhost:8761/;
}
mas isso só funciona para https://myserver.com/service
e não quando há um caminho à direita.
Eu apreciaria se alguém pudesse me ajudar a descobrir isso. Obrigado!
Tags nginx reverse-proxy ubuntu