Apache 的 ServerName 必须与 CDN 加速域名严格一致,否则导致路由错误、缓存失效或 HTTPS 混合内容问题;它标识源站响应的域名(如 cdn.example.com),需配合 ServerAlias、Cache-Control 响应头及 CDN 回源配置共同生效。
Apache 的 ServerName 本身不直接参与 CDN 加速,但它必须与 CDN 的域名配置严格一致,否则会导致请求无法正确路由、缓存失效或 HTTPS 混合内容错误。关键不是“怎么写”,而是“怎么配得准”。
CDN 加速时,用户访问的是你配置的加速域名(如 cdn.example.com 或 static.example.com),而不是源站主域名(example.com)。Apache 必须明确识别这个入站域名:
ServerName 应设为你的加速域名,例如:ServerName cdn.example.com
ServerAlias 补充:ServerAlias www.cdn.example.com
example.com)写在这里——它应由另一个独立的虚拟主机处理,避免混用假设你用 Vultr CDN 或自建 Nginx 边缘节点,后端 Apache 只负责源站响应,那么 Apache 配置片段应类似:
<VirtualHost *:80>ServerName cdn.example.comServerAlias static.example.comDocumentRoot /var/www/static
# 确保响应头带 Cache-Control,便于 CDN 缓存<IfModule mod_headers.c>Header set Cache-Control "public, max-age=31536000, immutable"</IfModule># 禁止对静态资源返回 Set-Cookie(避免缓存污染)<FilesMatch ".(jpg|jpeg|png|gif|css|js|woff2|svg)$">Header unset Set-Cookie</FilesMatch>
</VirtualHost>
注意:ServerName 这里只是告诉 Apache “谁在调我”,真正决定流量是否走 CDN 的是 DNS 的 CNAME 设置(比如把 cdn.example.com 指向 xxx.vultrcdn.com)。
如果 CDN 启用了 HTTPS 回源(推荐),且你让 CDN 通过 HTTPS 访问 Apache 源站,那么:
ServerName 仍为 cdn.example.com
http://,避免 301 重定向导致缓存失败配置完别只看语法是否正确,要确认实际行为:
curl -I http://cdn.example.com/test.jpg 查看响应头是否有 Cache-Control,且无 Set-Cookie
ServerName 不匹配导致请求被 fallback 到默认虚拟主机Tplink企业版路由器WiFi名称的默认设置介绍(Tplink企业版路由器WiFi名称的默认设置是什么)
Tplink路由器灯常亮无法上网的原因分析(如何解决Tplink路由器灯常亮无法上网的问题)
Tplink千兆企业级路由器自动重启的作用和优势介绍(如何设置Tplink千兆企业级路由器自动重启功能)
一根天线的tplink路由器有哪些(一根天线的Tplink路由器的特点和优势介绍)
tplink路由器外网访问不了nas(Tplink路由器外网访问NAS的原因分析)
Tplink无法搜到路由器的原因分析(如何解决Tplink无法搜到路由器的问题)