Несколько корневых документов с nginx

Несколько корневых документов с nginx

Мне нужно настроить nginx так, чтобы он обслуживал другое программное обеспечение из другого корневого каталога документов в подкаталоге домена следующим образом:

http://example.com/... - main site from /var/www/main
http://example.com/docs/ - an independent application from /var/www/app

Я пробовал много способов, включая proxy_pass и alias, но ни один из них не сработал. Последняя конфигурация следующая:

server {
        listen 80;
        server_name example.com;
        root /var/www/main;
        index index.html;

        location /docs/ {
           root /var/www/app;
        }
}

Когда я пытаюсь получить доступhttp://example.com/docs/Я вижу ошибку 404 Not Found и следующее сообщение в error_log:

*1 "/var/www/app/docs/index.html" не найден (2: Нет такого файла или каталога

Поэтому он пытается открыть /var/www/app/docs/index.htmlвместо /var/www/app/index.html.

Я знаю, что это можно исправить следующим образом rewrite: rewrite ^/docs/(.*)$ /$1 last;У меня это работает, но при этом также перезаписываются все относительные ссылки на все активы, так что это не тот случай.

Обновлять:

1) Моя проблема с alias:

location /docs/ {
   autoindex on;

   alias /var/www/app/;
}

«/var/www/app/index.html» не найден (2: Нет такого файла или каталога)

2) Проблема с 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;
}

Ошибка следующая:

/var/www/app/docs/index.html" is not found (2: No such file or directory)

Связанный контент