
Preciso configurar o nginx para que ele sirva um software diferente de uma raiz de documento diferente no subdiretório de um domínio da seguinte maneira:
http://example.com/... - main site from /var/www/main
http://example.com/docs/ - an independent application from /var/www/app
Tentei de várias maneiras, incluindo proxy_pass e alias, mas nenhuma delas funcionou para mim. A configuração mais recente é a seguinte:
server {
listen 80;
server_name example.com;
root /var/www/main;
index index.html;
location /docs/ {
root /var/www/app;
}
}
Quando tento acessarhttp://example.com/docs/Vejo o erro 404 Not Found e a seguinte mensagem no error_log:
*1 "/var/www/app/docs/index.html" não foi encontrado (2: Esse arquivo ou diretório não existe
Então ele tenta abrir /var/www/app/docs/index.html
em vez de /var/www/app/index.html
.
Eu sei que isso pode ser corrigido da rewrite
seguinte forma:
rewrite ^/docs/(.*)$ /$1 last;
. Funciona para mim, mas também reescreve todos os links relativos a todos os ativos, então não é o caso.
Atualizar:
1) meu problema com alias
:
location /docs/ {
autoindex on;
alias /var/www/app/;
}
"/var/www/app/index.html" não foi encontrado (2: Esse arquivo ou diretório não existe)
2) Problema com proxy_pass:
location /docs/ {
proxy_pass: http://127.0.0.1:8080;
}
...
server {
listen 8080;
server_name localhost;
root /var/www/app;
index index.html;
}
O erro é o seguinte:
/var/www/app/docs/index.html" is not found (2: No such file or directory)