
Мне нужно настроить 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)