Apache通过Include批量启用安全头的核心是将通用头(如X-Content-Type-Options、Referrer-Policy、Permissions-Policy)抽离至独立文件(如security-headers.conf),在主配置或各VirtualHost中用Include加载,确保所有站点自动继承;Strict-Transport-Security须仅限443虚拟主机内配置,Header必须用always set以覆盖非2xx响应,且需先启用mod_headers模块。

Apache 用 Include 批量为多站点启用安全头,核心是把通用头部配置抽离成独立文件,再通过 Include 指令统一加载——既避免重复写配置,又能确保所有虚拟主机(包括新增的)自动继承防护策略。
准备一个集中管理的安全头配置文件
在 Apache 配置目录下(如 /etc/apache2/conf-available/ 或 /etc/httpd/conf.d/)新建一个文件,例如 security-headers.conf。内容只写全局生效、各站点共用的安全头,推荐如下:
Header always set X-Content-Type-Options "nosniff"Header always set Referrer-Policy "strict-origin-when-cross-origin"Header always set Permissions-Policy "geolocation=(), camera=(), microphone=()"- 若所有站点都走 HTTPS,可加:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"(注意:仅限 443 虚拟主机中生效,HTTP 主机里加了无效)
⚠️ 不要在这里写 X-Frame-Options 或细粒度 CSP ——这些需按站点业务单独控制,不适合“一刀切”。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
在主配置或站点配置中调用 Include
方式一(推荐):在主配置文件末尾(如 apache2.conf 或 httpd.conf)添加:
Include conf-available/security-headers.conf
方式二:在每个 <VirtualHost> 块开头或结尾加入:
<IfModule mod_headers.c><br> Include conf-available/security-headers.conf<br></IfModule>
后者更稳妥,能明确限定模块依赖;前者更简洁,但需确保 mod_headers 已启用且加载顺序靠前。
关键注意事项
- 必须先启用
mod_headers:Debian/Ubuntu 运行a2enmod headers,RHEL/CentOS 确认httpd.conf中有LoadModule headers_module modules/mod_headers.so - 所有
Header指令务必用always set,否则 404、500 等非 2xx 响应不带安全头,留下防护缺口 - 如果站点混用 HTTP 和 HTTPS,
Strict-Transport-Security必须只出现在<VirtualHost *:443>块内,不能放在全局Include文件里,否则会被浏览器忽略 - 验证是否生效:绕过 CDN,用
curl -I https://site-a.com和curl -I http://site-b.com分别检查响应头,确认每项都出现且值正确

















