A sugestão do @sikian resolveu, alterei a declaração de local de location /app1 { ... }
para location /app1/ { ... }
.
Os arquivos estáticos foram exibidos sem erro no console, e o aplicativo parece estar funcionando totalmente.
Estou tentando fazer algo que me parece muito simples, mas devo ser estúpido ou perder algo muito óbvio, porque não consigo entender.
Eu quero acessar os vários aplicativos da Web em execução no meu servidor com um prefixo exclusivo para cada um deles:
http://mywebserver/app1 -> localhost:9001
http://mywebserver/app2 -> localhost:9002
...
Pelo que entendi, preciso configurar o Nginx como um proxy reverso, então fiz isso:
server {
listen 80;
server_name mywebserver;
location /app1{
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:9001/;
}
...
}
Essa configuração permite que eu acesse a página inicial do aplicativo em http://mywebserver/app1
, mas o conteúdo estático não está carregado.
Quando abro o console do meu navegador, vejo que ele está tentando obter os recursos de http://mywebserver/static/custom/index.js
e não algo como http://mywebserver/app1/static/custom/index.js
.
Eu tentei adicionar uma diretiva root
no bloco de localização para veicular a estática, mas ela não é levada em conta, pois a solicitação de conteúdo estático é feita em /
e não em /app1
.
Como consertar isso? Existe algo óbvio que eu estou ausente ou eu entendi completamente errado o conceito de proxy reverso?
Obrigado.
A sugestão do @sikian resolveu, alterei a declaração de local de location /app1 { ... }
para location /app1/ { ... }
.
Os arquivos estáticos foram exibidos sem erro no console, e o aplicativo parece estar funcionando totalmente.