我正在尝试设置 Nginx 配置,以将指向我的静态子域 (site.domain.com) 的任何域/子域 (CNAME) 自动重定向到 /var/www 内的相应目录。该目录将以指向的域/子域命名。我不想每次有人添加新域时都使用 VirtualHost 或更改/重新启动 Nginx。
我偶然发现这个答案但我还是不太明白。我应该将什么设置为根目录?
当前配置:
server {
server_name site.domain.com;
listen 80 default_server;
root /var/www/;
index index.html index.htm;
}
答案1
rewrite ^(.*)$ /$host/$1;
添加上面提到的重写规则。其工作原理如下。
xyz.foo.com/index.html将映射到/var/www/xyz.foo.com/index.html
需要注意的是,如果域/子域目录不存在,nginx 将抛出错误。