我试图弄清楚为什么我刚刚在 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
。