为什么使用了CDN源服务器需要关闭防火墙?
在网站运营过程中,不少站长会遇到这样的困惑:当使用 CDN 源服务器时,好像就得关闭源服务器的防火墙,不然就状况百出。这背后究竟是什么原因呢?
当你在浏览网页时,要是看到 “502 - 服务暂时不可用” 的提示,很可能就和源服务器的防火墙设置有关。这个提示意味着服务器这会儿没法处理你的请求,让你稍后再试。出现这种情况,通常是源站的防火墙把 CDN 节点给拦截了,又或者是源服务器回源的端口超时。比如说,要是回源协议选的是 http,那就是 80 端口不通;选 https,就是 443 端口不通;要是用非标准端口,那就是回源的那个端口出问题了。
CDN 节点在运行时,需要从源服务器获取那些还没被缓存的内容,这就是回源请求。要是源服务器的防火墙没有允许 CDN 节点的 IP 地址访问,CDN 就没办法正常回源,进而引发各种错误,像 403、502、503、504 这些都有可能出现。
还有,部分防火墙和安全软件,像云锁、安全狗之类的,可能会把 CDN 节点频繁的回源请求误当成攻击行为,比如 CC 攻击,然后就直接拦截流量,导致网站访问异常。
另外,防火墙要是没有开放 CDN 回源所需要的端口,像 HTTP 常用的 80 端口和 HTTPS 的 443 端口,就会让连接超时或者直接失败,影响网站内容的正常加载。
不过,不用急着直接关闭防火墙,其实有不少替代方法。首先,可以把 CDN 节点的 IP 加入到白名单里。你可以找 CDN 服务商要回源节点的 IP 列表,然后在源服务器的防火墙里设置白名单规则。拿腾讯云 CDN 举例,就得导入 L2 节点的 IP 列表。要是用了云锁这类安全软件,也能通过它的 “自定义 CDN” 功能来导入节点 IP。
将盾CDN:www.1k4.cn
其次,还能调整防火墙的防攻击策略。像是关闭针对高频请求的防 CC 攻击功能,或者调整一下相关阈值,避免把 CDN 回源流量误判。同时,别忘了检查 Nginx 等 Web 服务器的连接限制配置,像 <代码开始> ngx_http_limit_req_module < 代码结束 > 模块的设置,别因为速率限制导致回源失败。