时间:2023-06-02 16:16:41 来源: 人气:
简单记录:, 需求描述, Web 服务器为 Nginx,希望配置泛子域名解析。 其实稍加修改,配置泛域名解析也不是难事。, 解决及分析, 在 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 变量。,