nginx泛二级域名配置

nginx有着非常强大的rewrite功能, 结合正则表达式可以定义非常灵活的泛二级域名.

假设/home/www中分别有company1/和company2/两个网站, 希望分别有各自的二级域名.

在nginx配置文件中使用如下语句即可分离出二级域名, 保存至变量$subdomain, 默认为company1.

set $subdomain company1;
if ( $http_host ~* "^(.*).archangelsdy.com$") {
    set $subdomain $1;
}

之后用root语句定位至对应的主目录.

root /home/www/$subdomain;

同样, fastcgi的转发也相应修改为:

fastcgi_param  SCRIPT_FILENAME  /home/www/$subdomain$fastcgi_script_name;

如上配置后, 对于某个二级域名便可重定向置/home中对应的目录. 显然, 用这种方便配置后, 以后添加二级域名只需要配置好域名解析并在/home中建立相应目录即可, 不需要修改nginx的配置文件也不需要重启nginx, 可批量添加二级域名三级域名等, 缺点是对于每个二级域名下的网站配置都是相同的.

Advertisement