Raiz de vários documentos com nginx

Raiz de vários documentos com nginx

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.htmlem vez de /var/www/app/index.html.

Eu sei que isso pode ser corrigido da rewriteseguinte 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)

informação relacionada