Skip to content

宝塔与 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 回源网段加入白名单。

不要为了“让网站先通”而关闭全部防护。更安全的顺序是:

  1. 临时确认是哪一层拦截了回源。
  2. 只放行 CDN 回源网段和必要端口。
  3. 在源站日志中确认请求来自 CDN,并保留访问审计。
  4. 重新开启不影响 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 状态码对照。

基于 VitePress 构建