查看文档目录

节点对请求和响应做了什么

节点回源时加了哪些请求头、给访客的响应带哪些头、下发哪些 Cookie、哪些路径由节点自己应答。源站开发、安全扫描和隐私说明都用得到。

发往源站的请求头

节点每次回源都重写下面这些头。值为空时不发这个头,所以访客自带的同名头不会原样透传。

请求头值什么时候有
Host默认是访客请求的 Host;回源设置里可以改成源站地址或自定义值每次回源
X-Forwarded-For节点看到的对端地址。对端是网站设置的可信代理时,保留它传来的链并在末尾追加对端地址每次回源;节点自己的缓存预热请求不带
X-Real-IP对端地址;对端是可信代理且它传来的 X-Real-IP 是合法地址时,沿用该值同上
X-Forwarded-Proto访客连接节点用的协议,http 或 https同上
Upgrade、ConnectionWebSocket 升级请求原样转发 Upgrade,Connection 为 upgrade只在开了 WebSocket 的网站
X-Client-Verify、X-Client-Cert-Fingerprint、X-Client-Cert-Subject客户端证书校验结果、指纹和主题只在开了客户端证书认证的 HTTPS 网站;其他网站一律删掉访客自带的这三个头,防止伪造

多级节点之间转发时,上一级节点会带一个内部标记头 X-Cdnca-L2-Hop,源站收不到它。访客自带的这个头会被覆盖。

源站返回的 Location、Refresh 如果指向源站自己的地址,节点会改成访客访问的域名,访客不会被跳到源站 IP 上。

返回给访客的响应头

响应头值什么时候有
X-CDN-CacheHIT、MISS、EXPIRED、STALE、UPDATING、REVALIDATED 或 BYPASS开了缓存的网站,且“响应头显示缓存状态”打开(默认打开);攻击升级到 B 级及以上时自动不发
X-CDN-Cache-Reason没走缓存的原因,取值见功能参考的缓存一页与上一行相同,只在 BYPASS 时有
Server默认 cdnca;在“系统设置 → Nginx”里可改,留空则不发每个响应
Alt-Svch3=":<端口>"; ma=86400网站在该端口开了 HTTP/3
Strict-Transport-Security按网站 HSTS 设置网站开了 HSTS
X-Cdnca-Challenge挑战方式(如 delay、slider)、redirect、banned、expired、failedCC 规则返回的验证页、跳转和封禁页
X-Cdnca-WAFchallenge、banned、expired、failedWAF 规则返回的验证页和封禁页
X-Cdnca-Banlisted(状态码 403)访客 IP 在网站黑名单里
X-Cdnca-Referer-Checkrejected(状态码 403)防盗链拒绝
Retry-After秒数429、封禁页、验证页

源站自己发的 X-CDN-Cache、X-CDN-Cache-Reason、X-Cdnca-Cache-Key、X-Cdnca-Site 会被节点去掉,源站不能伪造缓存状态。后两个头只在节点自己的缓存预热请求上出现,访客看不到。

节点自己生成的错误页和拦截页另带 Cache-Control: no-store, max-age=0、Content-Security-Policy(不加载任何外部资源)、Referrer-Policy: no-referrer、X-Content-Type-Options: nosniff,并去掉 Set-Cookie、Location、ETag、Via 等头。

节点下发的 Cookie

这些 Cookie 都由节点在访客通过验证或进入会话保持时写入,用于安全验证或负载均衡。如果你的网站有隐私说明,可能需要列出它们。

Cookie用途有效期属性
__cdnca_cc_pass通过 CC 验证的凭证。签名绑定网站、规则、访客网段和 User-Agent规则里的“通过后免验证时长”,60 秒到 7 天HttpOnly、SameSite=Lax,HTTPS 下加 Secure;设置了挑战 Cookie 域名时带 Domain
__cdnca_cc_probe302 跳转验证用的一次性随机数验证页有效期,30 到 3600 秒HttpOnly、SameSite=Lax
__cdnca_waf_pass通过 WAF 验证的凭证。签名绑定网站规则、访客网段和 User-Agent规则设置的通过时长HttpOnly、SameSite=Lax,HTTPS 下加 Secure
__cdnca_waf_probeWAF 对非 GET 请求先跳转验证时的一次性令牌300 秒HttpOnly、SameSite=Lax
__cdnca_waf_grey托管 WAF 灰区挑战通过的凭证默认 3600 秒同 __cdnca_waf_pass
__cdnca_ad智能自动防御 L1 挑战的凭证,由验证页的脚本写入,绑定网站、访客地址和小时3600 秒SameSite=Lax(由脚本写入,没有 HttpOnly)
挑战策略的凭证“挑战策略”通过后的凭证,名字由策略决定,必须以 __Host- 开头策略里的通过时长Secure、HttpOnly、SameSite=Lax
会话保持 Cookie回源负载均衡选了“Cookie 会话保持”时,记住访客落在哪个源站,名字由你设置浏览器会话HttpOnly、SameSite=Lax

你的源站不要使用 __cdnca_ 开头的 Cookie 名,以免和节点冲突。

由节点直接应答的路径

下面的路径不回源,由节点自己处理。安全扫描器报告这些路径时,可以引用本页说明它们属于 CDN 节点。

路径用途什么时候存在
/_guard/verifyCC 验证页提交答案网站有带验证动作的 CC 规则
/.cdnca/waf/verifyWAF 验证页提交答案网站有带验证动作的 WAF 规则
/.cdnca/challenge/verify、solver.js、picture挑战策略的提交地址、计算脚本和图片网站绑定了挑战策略
/.well-known/acme-challenge/证书文件验证(HTTP-01)节点持有的令牌由节点应答;其他令牌在网站打开“源站申请证书”时转给源站,否则返回 404
/.well-known/cdnca-market-probe、/.well-known/cdnca-market-benchmark节点市场探测与测速只在节点市场供货节点的 80 端口,且只对没有配置网站的域名应答;已配置的网站域名照常回源
/_cdnca302/ 开头的路径302 调度的落地地址只在开了 302 调度的明文端口

节点错误页上的请求 ID

节点自己生成的错误页底部显示“请求 ID”、节点编号和访客 IP。访客反馈问题时请他提供这三项,管理员可以在访问日志里按请求 ID 找到这条请求。

常见问题

源站看到的访客 IP 是节点的地址

读取 X-Forwarded-For 的第一个地址或 X-Real-IP。前面还有自己的代理(如负载均衡)时,在网站设置里把它加为可信代理,节点才会保留它传来的地址链。

浏览器里看不到 X-CDN-Cache

确认网站开了缓存、“响应头显示缓存状态”是打开的,并且网站没有处在攻击升级 B 级及以上。

源站的跳转把访客带到了源站 IP

节点只改写指向源站自身地址的 Location 和 Refresh。源站写的是另一个域名时,节点不改,请在源站修正跳转地址。