Apache通过Include机制按业务线拆分子域名配置,各业务独立维护.conf文件并用软链接启停,主配置统一引入,无需修改主文件或全局重启;可选mod_vhost_alias支持泛解析动态子域。

Apache 用 Include 管理不同业务线的子域名,关键是把配置按业务拆开、统一入口引入、各自维护互不干扰。不需要改主配置文件,也不用每次加一个子域就重启全局服务。
为每个业务线建独立配置文件
在 /etc/apache2/sites-available/(Ubuntu/Debian)或 /etc/httpd/vhost/(CentOS/RHEL)下,按业务命名创建 .conf 文件,比如:
- marketing.example.com.conf —— 市场部官网和活动页
- api.example.com.conf —— 后端 API 服务
- devops.example.com.conf —— 内部运维平台
每个文件只写对应业务的 <VirtualHost> 块,含 ServerName、DocumentRoot、SSL 配置等,不混其他业务内容。
主配置中统一启用 Include
打开主配置文件(/etc/apache2/apache2.conf 或 /etc/httpd/conf/httpd.conf),在全局上下文(不在任何 <Directory> 或 <VirtualHost> 内)添加:
- IncludeOptional /etc/apache2/sites-enabled/*.conf(推荐,目录不存在也不报错)
- 或 Include /etc/httpd/vhost/*.conf(确保路径存在且有读权限)
这行必须放在所有 NameVirtualHost 和默认虚拟主机定义之后,否则部分配置可能不生效。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
用符号链接控制启用状态
不直接编辑 sites-enabled 目录,而是用软链管理启停:
- 启用某业务:sudo ln -sf ../sites-available/marketing.example.com.conf /etc/apache2/sites-enabled/
- 停用某业务:sudo rm /etc/apache2/sites-enabled/marketing.example.com.conf
这样业务线可自行维护自己的 .conf 文件,只需通知运维执行一次软链操作,无需接触主配置或重启整个 Apache。
配合 DNS 泛解析做动态子域支持(可选)
如果某业务线需要大量用户级子域(如 user1.example.com、user2.example.com),可在其配置中启用 mod_vhost_alias:
- 确认已加载模块:LoadModule vhost_alias_module modules/mod_vhost_alias.so
- 在对应 .conf 中写:
<VirtualHost *:80>
ServerName example.com
ServerAlias *.example.com
UseCanonicalName Off
VirtualDocumentRoot /var/www/%1
</VirtualHost>
再配合 DNS 添加 *.example.com → 服务器IP 的泛解析记录,即可自动映射路径,无需为每个子域单独建配置文件。

















