[nginx如何配置子域名]Nginx如何配置子域名的泛解析步骤

更新时间:2019-09-12    来源:nginx    手机版     字体:

【www.bbyears.com--nginx】

Web 服务器为 Nginx,希望配置泛子域名解析。 其实稍加修改,配置泛域名解析也不是难事。

不影响主域名,domain.com 和 www.domain.com 的 root 依然为 www 目录
子域名 sub.domain.com 的 root 希望放在 www-sub 目录下,其他子域名同理

解决及分析

在 Nginx 的配置文件中做如下配置(示意):

server {
    server_name
        domain.com
        www.domain.com
        *.domain.com
    ;

    set $subdomain "";
    if ($host ~* (b(?!wwwb).+).domain.com) {
        set $subdomain -$1;
    }

    root    /home/user/www$subdomain/;
}

解释:

首先,在定义 server_name 时使用通配符 * ,使 Nginx 接受任意子域名的访问。

然后,对 $host 进行分析,找到子域名的名称。 这个正则表达式是在网上抄的,目的是为了在匹配子域名的同时, 不匹配 www 开头的访问和不带 www 的访问。 前面的 set 是因为 Nginx 的 If 没有 Else,所以默认先将 $subdomain 置空。

最后,在定义 root 的时候,使用 $subdomain 变量。

现在泛解析配置成功了,我们就可以在服务器上配置很多二级域名的站点了。

本文来源:http://www.bbyears.com/caozuoxitong/67611.html