IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

配置 Nginx 子域名的泛解析

Fwolf's Blog 2014-11-20 23:44:34 累计浏览 1,709 次
本机暂存

   简单记录:

需求描述

   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(?!www\b).+)\.domain.com) {
            set $subdomain -$1;
        }
 
        root    /home/user/www$subdomain/;
    }

   解释:

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

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

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

同分类推荐文章

  1. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. 配置Nginx+uwsgi更方便地部署python应用 (累计阅读 107,164)
  2. 搜狐闪电邮箱的 Nginx/Postfix 使用模式 (累计阅读 33,895)
  3. 记录一个软中断问题 (累计阅读 16,954)
  4. 解析nginx负载均衡 (累计阅读 16,622)
  5. server日志的路径分析 (累计阅读 11,239)
  6. Nginx模块开发入门 (累计阅读 11,169)
  7. 检查nginx配置,重载配置以及重启的方法 (累计阅读 10,896)
  8. Cacti 添加 Nginx 监控 (累计阅读 10,641)
  9. fsockopen 异步处理 (累计阅读 10,343)
  10. 使用Squid缓存视频 (累计阅读 10,339)