使用 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 错误和以下消息:

*1 未找到“/var/www/app/docs/index.html”(2:没有此文件或目录

因此它尝试打开/var/www/app/docs/index.html而不是/var/www/app/index.html

我知道可以通过以下方式修复此问题rewriterewrite ^/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)

相关内容