2017-08-25 76 views
1

我有一个网站,它是一个包含其他应用程序的应用程序。 在主应用程序中,我将使用iframe加载其他应用程序。 http://example.com 的其他应用的/应用程序路径下送达:静态应用程序的NGINX服务器配置

另外,应用程序是在发达

主要应用是在域根服务聚合物,所以有客户端导航。我确信客户端没有使用/ apps路径来正确击中NGINX服务器,但这也意味着对于诸如http://example.com/view1之类的网址,它应该重定向到主应用程序的index.html。对于像http://example.com/apps/app-b/view1这样的网址,它应该重定向到app-b的index.html。

我正在尝试配置NGINX来为这些静态应用程序提供服务。

server { 
     listen 80; 
     server_name example.com; 

     root /var/www/example.com/main-app; 
     index index.html; 

     try_files $uri $uri/index.html /index.html; 

     location ~ /apps/([a-z-]+) { 
       alias /var/www/example.com/apps/$1; 
     } 
} 

通过上面的配置,我的主应用程序正确地重定向到index.html,例如/ view1路径。

但我有一个子应用程序403禁止错误。的 “/var/www/example.com/apps/app-b”

目录索引是禁止的, 客户端:127.0.0.1,服务器:example.com,请求:“GET /应用/ APP- b/

我试过其他配置没有成功(无限重定向导致/index.html/index.html/index.html ...)。

我敢肯定,有关文件系统权限所有目录是755和文件是644.

我不知道为什么它是t试图做一个目录索引。 任何帮助表示赞赏。

回答

0

当使用alias和正则表达式location时,您需要构建文件的完整路径。目前,您只捕获第二个路径元素。

话虽如此,您实际上并不需要在这里使用alias,因为可以使用root指令代替。

location /apps/ { 
    root /var/www/example.com; 
} 

查看this document了解详情。

+0

它不工作,因为位置/应用程序与文件系统上的文件夹名称不匹配。我有类似/var/www/example.com/other-apps的东西。现在,我改变了其他应用程序,使其与您提出的建议一致(这是理所当然的)。 – florian

相关问题