(转)配置 Nginx 子域名的泛解析

文章信息
作者:Fwolf 来源: Fwolf's Blog
标签: 泛解析
发布时间:2014-11-20 23:44:34
地址:[url]http://www.fwolf.com/blog/post/453[/url]


简单记录:

[b]需求描述[/b]
Web 服务器为 Nginx,希望配置泛子域名解析。 其实稍加修改,配置泛域名解析也不是难事。

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

[b]解决及分析[/b]
在 Nginx 的配置文件中做如下配置(示意):

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

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

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


[b]解释:[/b]

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

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

最后,在定义 root 的时候,使用 $subdomain 变量。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值