Nginx 和多个应用程序

Nginx 和多个应用程序

我是 nginx 的新手,我想实现的目标是:

  • 我只有一个域名。
  • 我想要有多个应用程序,可以通过以下方式访问:mydomain.com/app1 mydomain.com/app2 等

因此我最终得到了如下配置:

    server {
        listen 80;
        server_name mydomain.com;

        location ~ /site1 {
            alias /srv/http/site1;
            index home.html;
        }

        # fallback if no application is passed as argument
        location / { 
          alias /srv/http/default;
          index index.html;
        }
}

但是,我只收到 403 错误。

我的目录归 nginx 用户 (http) 所有,为确保不是权限问题,我把所有内容的所有权都改为 777(只是为了测试,不用担心 ;))。

任何想法 ?


编辑:感谢 Florin Asavoaie,我得到了一些工作:

诀窍是什么:

  • 删除位置中的 ~
  • 用 root 替换第二个别名(但是,第一个别名似乎是需要的..)。

所以我有这个配置工作:

server {
    listen 80;
    server_name mydomain.com;

    location /site1 {
            alias /srv/http/site1;
            index home.html;
    }

    location / {
          root /srv/http/default;
          index index.html;
    }
}

答案1

  1. 检查错误日志,它会告诉你为什么输出 403 错误。

  2. Alias 会根据 URL 进行替换,而不是根据服务器路径。请使用root指令来执行您想要的操作。

  3. 删除位置定义中的 ~ ,即用location /site1代替location ~ /site1,它具有更好的性能并且可以避免其他类型的问题。仅在需要正则表达式时才使用 ~ 。

相关内容