外观
宝塔与 Nginx 源站接入
这篇内容适用于宝塔、aaPanel 或直接维护 Nginx 配置的源站。核心原则是:CDN 负责公网接入和安全策略,源站负责正确返回内容和允许合法回源。
1. 检查站点绑定
在宝塔网站设置中,把 CDN 需要访问的域名加入站点域名列表。若使用通配符域名,站点绑定也要覆盖对应的主域名和通配符,否则请求到达源站时可能落到默认站点。
确认 Nginx 的 server_name 与 CDN 中创建的网站域名一致。修改后先在源站本机执行配置检查,再重载 Nginx。
2. 处理 HTTPS 回源
推荐优先使用 HTTP 回源,由 CDN 负责客户端 HTTPS。这样可以减少源站证书、SNI、443 端口和重定向带来的变量。
如果源站必须 HTTPS 回源:
- CDN 网站的回源协议选择 HTTPS,端口填写源站实际监听端口。
- 源站证书的域名要覆盖 CDN 发送的
Host。 - 源站要支持正确的 SNI,不要只给 IP 配置证书。
- 源站不要把 HTTPS 请求再次重定向到一个未接入 CDN 的域名。
如果宝塔开启了“强制 HTTPS”,请确认 CDN 也配置了 HTTPS 回源;否则 80 回源可能被源站 301 到 443,最终表现为 502、504 或循环跳转。
3. 防火墙和 WAF 白名单
接入 CDN 后,源站看到的连接来源通常是 CDN 节点,而不是访客 IP。若宝塔防火墙、Nginx 防火墙、云安全组或系统防火墙只允许固定 IP,需要把平台提供的 CDN 回源网段加入白名单。
不要为了“让网站先通”而关闭全部防护。更安全的顺序是:
- 临时确认是哪一层拦截了回源。
- 只放行 CDN 回源网段和必要端口。
- 在源站日志中确认请求来自 CDN,并保留访问审计。
- 重新开启不影响 CDN 回源的基础防护。
4. 配置真实客户端 IP
应用日志不应把 CDN 节点 IP 当成访客 IP。请按源站 Web 服务器和应用框架的文档配置可信代理,并只信任 CDN 写入的转发头。不要直接信任来自公网客户端的 X-Forwarded-For。
以 Nginx 为例,相关配置需要结合平台实际回源网段调整,不能直接照抄下面的示例:
nginx
# 仅示意:请替换为平台公布的可信 CDN 网段
set_real_ip_from 192.0.2.0/24;
real_ip_header X-Forwarded-For;
real_ip_recursive on;5. 常见源站问题
| 现象 | 优先检查 |
|---|---|
| 502 / 504 | 源站端口、进程、健康检查、防火墙和回源协议 |
| 页面跳转循环 | 源站强制 HTTPS、反向代理协议头和应用基础 URL |
| 静态资源 404 | 站点绑定、路径大小写、缓存和默认站点配置 |
| 访问显示默认站点 | server_name 未包含 CDN 域名或 Nginx 匹配顺序不正确 |
| 登录后反复退出 | 应用未正确识别 HTTPS、Cookie 的 Secure/Domain 配置错误 |
| WebSocket 失败 | CDN 和源站均需允许 Upgrade/Connection 头,并检查超时 |
修改源站后,先绕过 CDN 测试,再通过 CDN 测试同一 URL。两次都要记录时间、状态码和请求 ID。
下一步:遇到 50x 时查看 常见故障排查;需要了解状态码含义时查看 HTTP 状态码对照。