两个 Nginx 子域名具有不同的根文件夹但都指向同一个文件夹?

两个 Nginx 子域名具有不同的根文件夹但都指向同一个文件夹?

我试图弄清楚为什么我刚刚在 Nginx 中创建的子域没有使用其配置文件中指定的根文件夹。以下是子域 zeta 的配置文件。

server {
    listen   80; 

    root /var/www/zeta;
    server_name  zeto.mydomain.com;
    error_log  /var/log/nginx/subdomains_error.log;
    error_page 404 /404.html;
    if ($subdomain = ""){
        set $subdomain something;
        rewrite /.* /not_found;
    }
    location / {
        index index.php index.html index.htm;
        access_log  /var/log/nginx/subdomains_access.log;
        location / {
            include        fastcgi_params;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root/index.php;
            access_log  /var/log/nginx/subdomains_php_access.log;

        }
        location /public {
        }
        location ~ \.(js|ico|gif|jpg|png|css)$ {
        }
        location /not_found {
        }
        location /404.html {
            internal;
        }
    }

}

我有另一个域文件,该文件设置为使用通配符子域和不同的根文件夹,请参见下面,这是唯一的区别

root /var/www/account;
server_name  *.mydomain.com;

有一个/etc/nginx名为 subdomains 的文本文件。perl 文件读取子域列表,如果存在,则加载页面,否则显示错误。我知道我的通配符子域文件正在选择 zeta,因为它在子域文本文件中。之所以这样设置,是因为服务器是一个应用程序,当访问者注册时,我们会将他们选择的子域添加到文件中并重新加载 Nginx,而不会影响网站上已有的用户。

我可以对 zeta 文件进行哪些更改,以便它用作/var/www/zeta根文件夹而不是通配符配置文件中的根文件夹?

谢谢

答案1

如果这是你的 nginx 配置的复制粘贴,那么你的问题就是这里的拼写错误:

server_name  zeto.mydomain.com;

...应该读作zeta

相关内容