代码之家  ›  专栏  ›  技术社区  ›  grandouassou

静态应用程序的NGINX服务器配置

  •  1
  • grandouassou  · 技术社区  · 7 年前

    在主应用程序中,我将用iframes加载其他应用程序。

    http://example.com 其他应用程序在/apps路径下提供:

    http://example.com/view1 http://example.com/apps/app-b/view1 它应该重定向到索引。应用程序b的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;
            }
    }
    

    通过以上配置,我让主应用程序能够正确重定向到索引。例如,用于/view1路径的html。

    但我有一个403禁止错误的子应用程序。

    目录索引“/var/www/example.com/apps/app-b”被禁止, 客户端:127.0.0.1,服务器:示例。com,请求:“GET/apps/app-b/

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

    我不知道它为什么要做目录索引。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Richard Smith    7 年前

    使用时 alias location ,您需要构建文件的整个路径。目前,您仅捕获第二个路径元素。

    话虽如此,您实际上不需要使用 别名 这里,作为 root

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

    看见 this document 详细信息。