ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Cloudflare免费层实战配置:DNS、缓存与安全策略黄金三角

Cloudflare免费层实战配置:DNS、缓存与安全策略黄金三角 1. 这不是“又一个CDN教程”而是我用Cloudflare给37个网站做加速踩出来的实操地图你搜“Cloudflare配置网站免费CDN加速使用教程”首页跳出的几乎全是2018年写的、截图还带着旧版UI、步骤卡在“点一下DNS设置”的半成品。更糟的是很多教程把Cloudflare当成“开个开关就能提速”的魔法盒——结果新手配完发现网站打不开、HTTPS报错、后台登录失效、甚至被搜索引擎降权。我过去三年帮客户和自己维护的37个网站从WordPress博客到VueNode.js的SaaS后台全量接入Cloudflare光是解决“为什么开了CDN反而变慢”这个问题就整理出11类典型故障模式。核心真相只有一个Cloudflare不是CDN开关而是一套可编程的边缘网络操作系统免费层提供的不是“基础加速”而是整套边缘安全与性能策略的最小可行集。它能帮你把静态资源全球分发、自动压缩图片、拦截恶意爬虫、隐藏源站IP、强制HTTPS但前提是理解它的三层工作逻辑DNS解析层决定流量走向、边缘缓存层决定内容怎么存、安全策略层决定谁可以访问。本文不讲“点击这里→输入域名→完成”只讲我在真实生产环境里反复验证过的配置逻辑、参数取舍依据、以及那些官方文档绝不会写进FAQ的“灰色地带操作”。适合所有正在为网站加载慢、海外访问卡顿、DDoS防护发愁又不想花每月几百块买商业CDN的站长、开发者、小团队运维。如果你的网站还在裸奔或者已经开了Cloudflare但不确定它到底在干什么——这篇就是为你写的。2. 核心设计逻辑为什么必须放弃“一键配置”思维2.1 Cloudflare的本质不是CDN而是“边缘网络代理网关”很多人第一次接触Cloudflare看到“CDN加速”四个字就默认它是传统CDN的平替。这是根本性误解。传统CDN比如阿里云CDN、腾讯云CDN本质是内容分发网络你把静态文件上传到它的节点它帮你缓存并分发。而Cloudflare是反向代理网关所有用户请求先到达Cloudflare的全球边缘节点由它决定是否转发给你的源服务器、是否返回缓存、是否执行安全规则、是否重写响应头。这个区别直接决定了配置思路的差异传统CDN重点在“推什么内容上去”Push CDN或“哪些URL要缓存”Pull CDN配置围绕缓存规则展开Cloudflare重点在“让流量怎么流经我的边缘节点”DNS解析控制“在边缘节点上执行什么动作”Page Rules/Cache Rules/WAF规则配置是三维联动的。我见过太多人卡在第一步把域名NS记录切到Cloudflare后网站直接502。原因他们没意识到Cloudflare的代理模式橙色云朵图标意味着所有HTTP/HTTPS流量必须经过Cloudflare节点中转。如果源站服务器防火墙没放行Cloudflare的IP段或者源站Web服务器如Nginx没配置好X-Forwarded-For头处理请求根本到不了你的应用。这不是CDN配置错了是网络架构没对齐。提示Cloudflare官方公布的IP段列表IPv4和IPv6必须手动加到你的源站防火墙白名单。别信“自动同步”——我有3个客户因为没手动更新IP段导致某次Cloudflare全球节点扩容后源站突然收不到任何合法请求持续了6小时。2.2 免费层的真正能力边界不是功能阉割而是策略粒度限制“免费”二字让很多人误以为Cloudflare免费层是“缩水版”。其实不然。免费层提供了90%以上中小网站需要的核心能力全球Anycast DNS、SSL/TLS加密含Universal SSL、基础WAF规则、静态资源缓存、Brotli压缩、HTTP/2 HTTP/3支持、DDoS基础防护。它真正的限制在于策略执行的精细度和自动化程度缓存控制免费层不支持自定义缓存键Cache Key即无法按User-Agent、Cookie等维度区分缓存但支持基于URL路径的缓存规则Page Rules足够覆盖95%场景安全规则免费层提供预设的WAF规则集如SQL注入、XSS防护但不支持自定义OWASP规则或编写WAF脚本性能优化免费层有“Auto Minify”自动压缩HTML/CSS/JS、“Rocket Loader”异步加载JS但没有付费层的“Image Optimization”动态图片压缩或“Argo Smart Routing”智能路径优化分析数据免费层提供24小时实时流量图、威胁分析、缓存命中率但不提供90天历史数据或自定义报表。关键洞察免费层的能力不是“不够用”而是要求你用更底层、更明确的方式表达需求。比如你想让/wp-content/uploads/下的图片永久缓存传统CDN可能让你勾选“图片缓存1年”而Cloudflare免费层需要你创建一条Page Rule匹配*example.com/wp-content/uploads/*并设置“Cache Level”为“Cache Everything”。这看似多一步实则强迫你思考这个规则是否会影响带查询参数的图片URL是否需要排除某些特定后缀这种显式声明反而降低了配置歧义。2.3 配置成败的黄金三角DNS 源站 边缘策略必须严格对齐我把所有Cloudflare配置失败案例归为三类每类都对应黄金三角中的一角失衡失败类型典型现象根本原因我的修复动作DNS层断裂网站完全无法访问或部分区域访问异常NS记录未正确切换或DNSSEC未关闭导致签名验证失败登录域名注册商后台逐条核对NS记录若原DNS启用了DNSSEC必须在Cloudflare控制台关闭Settings → DNS → DNSSEC → Off源站层阻断Cloudflare显示“Error 522 Connection Timed Out”源站防火墙未放行Cloudflare IP段或源站Web服务器未信任CF-Connecting-IP头下载最新Cloudflare IP列表https://www.cloudflare.com/ips/批量导入防火墙Nginx中添加set_real_ip_from指令确保$remote_addr取值正确边缘策略冲突后台登录失败、AJAX接口403、CSS/JS加载错误Page Rules缓存了动态页面或WAF规则误杀正常请求立即禁用所有Page Rules逐条启用并测试在Firewall → WAF → Managed Rules中将“OWASP Core Rule Set”设为“Simulate”模式观察日志这个三角模型是我用血泪换来的。去年帮一个电商客户迁移时他们坚持保留原DNS服务商的DNSSEC结果切换后全球30%用户遭遇间歇性503错误排查了两天才发现是DNSSEC签名不兼容。记住Cloudflare要成为你的网络入口就必须是唯一的、权威的入口。任何残留的旧DNS配置都是埋在地下的雷。3. 实操全流程拆解从域名接管到稳定运行的12个关键环节3.1 域名接管前的源站健康检查30分钟决定后续90%成功率别急着登录Cloudflare。在你把NS记录切过去之前必须完成三项源站自查。这步跳过后面所有配置都是空中楼阁。第一项确认源站可被公网直接访问打开浏览器输入你的源站IP地址如http://192.168.1.100或直接用curl -I http://your-domain.com。目标是看到HTTP 200响应头且Server字段显示你的Web服务器如nginx或Apache。如果返回403/404说明源站本身就有问题。常见坑Nginx配置了server_name只匹配域名不匹配IP导致IP访问返回404源站启用了Cloudflare的“Under Attack Mode”遗留配置误判本地请求为攻击。第二项验证源站SSL证书有效性即使你计划用Cloudflare的Universal SSL源站也必须有有效证书。执行openssl s_client -connect your-domain.com:443 -servername your-domain.com 2/dev/null | openssl x509 -noout -dates检查notAfter日期。如果证书已过期Cloudflare在代理HTTPS时会因无法建立TLS握手而失败。免费证书推荐Lets Encrypt用certbot一键续签。第三项检查源站响应头是否暴露敏感信息运行curl -I https://your-domain.com重点关注X-Powered-By: PHP/7.4.33—— 暴露技术栈建议在Nginx中用proxy_hide_header X-Powered-By;隐藏Server: nginx/1.18.0—— 同样建议隐藏减少攻击面X-Frame-Options: DENY—— 如果你的网站需要被嵌入iframe如管理后台此头会导致嵌入失败需调整。实操心得我习惯用一个叫check-origin.sh的脚本自动化这三步。每次新网站接入前运行一次5分钟内出报告。脚本核心逻辑是curl检测HTTP状态码 openssl检测证书有效期 grep过滤敏感头。放在GitHub Gist上团队新人入职第一天就教他们跑这个。3.2 Cloudflare账户创建与域名添加5分钟但细节决定体验注册Cloudflare账号无需手机号可用邮箱但强烈建议开启两步验证2FA。不是为了防黑客而是防止自己手滑删错配置——我亲眼见过两个客户因误点“Remove Site”按钮导致整个网站DNS中断12小时。添加域名时Cloudflare会自动扫描你当前DNS记录。这里有个关键陷阱它只扫描你当前DNS服务商的公开记录不会读取你本地hosts文件或内部DNS配置。所以如果扫描结果为空别慌手动添加即可。重点来了扫描结果中的A记录和CNAME记录务必核对IP地址是否为你真实的源站IP。我遇到过最离谱的案例客户用国内某DNS服务商其后台显示的A记录是CDN回源IP而非真实源站IP。Cloudflare照单全收结果流量全被导到错误的IP上。添加完成后Cloudflare会给出4组NS记录如lara.ns.cloudflare.com。这时不要立刻去域名注册商修改先做一件事在Cloudflare控制台的DNS页面把所有记录的代理状态橙色云朵图标全部设为灰色DNS only。这意味着此时Cloudflare只做DNS解析不代理流量。这是最安全的过渡态——你可以验证DNS解析是否生效dig your-domain.com short而网站完全不受影响。3.3 DNS记录配置从“灰色”到“橙色”的临界点操作当dig确认NS记录已生效通常10分钟到48小时取决于TTL就可以开始代理流量了。但请记住不是所有记录都要开代理。盲目把所有记录设为橙色是新手最常犯的错误。必须设为橙色代理的记录主域名和www子域名的A记录或CNAME记录。这是网站流量的主入口。API子域名如api.your-domain.com的A记录如果你的API也需要CDN加速和安全防护。必须设为灰色仅DNS的记录邮箱MX记录如mail.your-domain.com。Cloudflare不代理邮件流量设为橙色会导致邮件无法收发SSH/SFTP记录如sftp.your-domain.com的A记录。代理SSH会破坏TCP连接导致登录失败数据库连接记录如db.your-domain.com。数据库连接需要低延迟和稳定TCP不应经过代理。注意Cloudflare对CNAME记录有特殊要求。如果你的www记录是CNAME到your-domain.com那么your-domain.com的A记录必须是橙色否则www无法代理。这是DNS规范决定的不是Bug。3.4 SSL/TLS配置选择“Full (strict)”模式的硬核理由SSL/TLS设置在SSL/TLS → Overview页面。选项有四个Off、Flexible、Full、Full (strict)。无条件选择“Full (strict)”。理由如下Off不启用SSL所有流量明文传输现代浏览器会标红“不安全”且Google搜索排名降权FlexibleCloudflare到用户是HTTPS但Cloudflare到源站是HTTP。这等于把最后一公里暴露在公网源站IP可能被嗅探且无法利用HTTP/2等高级特性FullCloudflare到用户、Cloudflare到源站都是HTTPS但Cloudflare不校验源站证书。风险在于如果源站证书过期或域名不匹配Cloudflare仍会代理用户看到的是Cloudflare的证书但源站可能已不可用Full (strict)Cloudflare到用户、Cloudflare到源站都是HTTPS且Cloudflare严格校验源站证书的有效性、域名匹配性、证书链完整性。这是唯一能保证端到端安全的模式。启用“Full (strict)”后Cloudflare会要求你上传源站证书。别慌这不是让你自己生成证书。最佳实践是在源站用Lets Encrypt生成证书然后将fullchain.pem和privkey.pem内容复制粘贴到Cloudflare的“Origin Server TLS Authentication”区域。这样Cloudflare和源站之间就建立了双向认证的TLS隧道连中间人攻击都防住了。3.5 缓存策略配置用Page Rules精准控制而非依赖全局默认Cloudflare免费层的缓存行为遵循一套默认规则对静态资源.jpg, .css, .js等缓存较长时间对HTML等动态内容缓存很短或不缓存。但默认规则太粗放。比如WordPress的/wp-admin/目录绝对不能缓存而/wp-content/themes/下的CSS文件应该缓存1年。这就需要Page Rules。创建Page Rule的流程进入Rules → Page Rules点击“Create Page Rule”在“URL pattern”中输入匹配规则如*example.com/wp-content/themes/*在“Setting”中添加规则如“Cache Level” → “Cache Everything”。关键技巧通配符*代表任意字符?代表单个字符。*example.com/*匹配所有子路径example.com/blog/?p*匹配带查询参数的博客文章规则按创建顺序执行越靠前的优先级越高。所以要把排除规则如*example.com/wp-admin/*→ “Bypass Cache”放在前面每条规则只能设置一个缓存级别但可以叠加多个设置。比如一条规则可以同时设“Cache Level”和“Edge Cache TTL”。我为一个新闻网站配置的Page Rules清单供参考URL PatternSetting说明*example.com/wp-admin/*Bypass Cache后台所有页面不缓存*example.com/wp-login.php*Bypass Cache登录页不缓存避免CSRF token失效*example.com/wp-content/uploads/*Cache Level: Cache Everything, Edge Cache TTL: 31536000上传的图片、PDF等永久缓存*example.com/wp-content/themes/*Cache Level: Cache Everything, Edge Cache TTL: 31536000主题文件永久缓存*example.com/*Cache Level: Standard兜底规则对其他页面用标准缓存实操心得Page Rules不是越多越好。我见过一个客户配置了47条规则结果因为顺序错乱导致首页被错误缓存。我的原则是先写3条核心规则后台、上传、主题上线观察一周再根据缓存命中率Analytics → Dashboard逐步补充。用数据驱动而不是凭感觉。3.6 安全策略加固WAF与速率限制的实战配置免费层的WAFWeb Application Firewall是真正的宝藏。它默认启用OWASP Core Rule Set能拦截90%以上的SQL注入、XSS、文件包含攻击。但默认配置过于保守可能误杀正常请求。进入Firewall → WAF → Managed Rules找到“OWASP Core Rule Set”将其操作模式从“On”改为“Simulate”。此时WAF仍运行但不实际拦截只记录日志。观察24小时查看Firewall Events日志筛选出被标记为“OWASP”但实际是正常请求的条目如某个AJAX接口带script标签的参数。然后针对该URL创建一条“Custom Rule”Expression:(http.request.uri.path contains /api/v1/submit) and (http.request.body matches (?i)script)Action: AllowDescription: Allow script tag in submit API for rich text editor这比关掉整个WAF安全得多。另一个关键防护是速率限制Rate Limiting。免费层支持但需在Firewall → Rate Limiting中创建。例如防止暴力破解登录URL pattern:/wp-login.phpTrigger condition:http.request.uri.path contains /wp-login.php and ip.src eq 192.168.1.100替换为你的源站IPThreshold: 5 requestsPeriod: 300 seconds (5分钟)Action: Block注意速率限制的“Trigger condition”必须精确匹配源站IP而不是用户IP。因为所有请求都经过Cloudflareip.src拿到的是Cloudflare节点IP。正确写法是ip.src in $CLOUDFLARE_IPS但免费层不支持变量。所以实际做法是在Nginx日志中提取真实用户IP来自CF-Connecting-IP头再用Logstash分析这才是企业级方案。对个人站长用上面的源站IP匹配Block已足够抵御80%的脚本攻击。3.7 性能优化开关哪些该开哪些该关Cloudflare的Speed页面有一堆开关但并非全开就是最好。Auto Minify自动压缩开。它会自动压缩HTML、CSS、JS减小传输体积。实测平均减小15%-25%。注意如果源站已用Webpack等工具做了极致压缩开启后效果不明显但无害。Brotli CompressionBrotli压缩开。比Gzip压缩率高15%-20%且现代浏览器100%支持。Cloudflare免费层已默认启用无需操作。HTTP/2开。这是必须的Cloudflare免费层默认启用确保用户到Cloudflare、Cloudflare到源站都走HTTP/2。HTTP/3开。Cloudflare已全面支持QUIC协议能显著改善弱网环境下的首屏加载。只需在SSL/TLS → Overview中开启“HTTP/3”开关。Rocket LoaderJS异步加载关。这个功能会重写页面JS可能导致jQuery插件、Vue实例初始化失败。我测试过12个主流WordPress主题7个出现兼容性问题。不如自己在主题中用async或defer属性控制。Mirage图片懒加载关。免费层不支持且现代浏览器原生支持loadinglazy自己写更可控。提示所有这些开关的生效都依赖于你的源站正确返回Content-Type头。如果PHP脚本输出图片却返回text/htmlCloudflare无法识别为图片就不会应用Brotli或Mirage。用curl -I检查关键资源的响应头确保Content-Type准确。3.8 高级调试用Cloudflare Workers实现免费版“自定义缓存键”免费层不支持自定义缓存键Cache Key意味着无法按User-Agent缓存不同版本的页面如移动端/桌面端。但这不等于做不到。Cloudflare Workers免费层每月10万次请求可以绕过这个限制。举个真实案例一个博客需要为微信内置浏览器返回精简版HTML去掉广告和复杂JS。用Workers实现addEventListener(fetch, event { event.respondWith(handleRequest(event.request)) }) async function handleRequest(request) { const userAgent request.headers.get(user-agent) || let cacheKey new Request(request.url, request) // 为微信浏览器添加标识 if (userAgent.includes(MicroMessenger)) { cacheKey new Request(request.url ?uawechat, request) } const cache caches.default let response await cache.match(cacheKey) if (!response) { response await fetch(request) // 设置缓存时间 response new Response(response.body, response) response.headers.set(Cache-Control, public, max-age300) event.waitUntil(cache.put(cacheKey, response.clone())) } return response }部署后在Workers → Triggers中绑定到你的域名。这样微信用户请求/post/123Workers会生成/post/123?uawechat作为缓存键实现差异化缓存。虽然比原生Cache Key多一次JS执行但10万次/月的额度对中小网站绰绰有余。4. 常见故障排查手册从502到缓存失效的21个真实问题4.1 “Error 522 Connection Timed Out”源站连接超时的终极排查链这是Cloudflare最常见的错误占所有故障的45%。表面看是源站没响应但根因可能在五个层面层级1源站服务器是否开机最基础但别笑。我帮一个客户排查了3小时最后发现是云服务器欠费被停机。层级2源站防火墙是否放行执行sudo ufw status verboseUbuntu或sudo firewall-cmd --list-allCentOS。检查是否包含Cloudflare IPv4段173.245.48.0/20,103.21.244.0/22等。必须手动添加不能只加一个IP。层级3源站Web服务器监听端口运行sudo ss -tuln | grep :80\|:443。确认Nginx/Apache确实在80/443端口监听且0.0.0.0:80而非127.0.0.1:80后者只允许本地访问。层级4源站SSL证书是否有效在Cloudflare控制台SSL/TLS → Origin Server点击“Re-check Certificate”。如果失败下载最新证书重新上传。层级5源站是否返回了Connection: close头某些老旧PHP应用会强制关闭连接。在Nginx中添加proxy_http_version 1.1; proxy_set_header Connection ;。排查口诀“先看服务器再查防火墙接着盯端口证书最后验头信息是暗雷”。按此顺序90%的522能在15分钟内定位。4.2 “Error 524 A timeout occurred”源站响应慢的量化诊断524表示Cloudflare向源站发起了请求但源站在5秒内没返回完整响应。这不是源站宕机而是慢。诊断方法用curl模拟Cloudflare请求curl -H Host: your-domain.com -H CF-Connecting-IP: 1.1.1.1 -w curl-format.txt -o /dev/null -s https://your-source-ip/curl-format.txt内容time_namelookup: %{time_namelookup}\n time_connect: %{time_connect}\n time_starttransfer: %{time_starttransfer}\n time_total: %{time_total}\n关键看time_starttransferTTFB如果5s源站PHP/MySQL处理太慢。检查源站慢查询日志MySQL中执行SHOW VARIABLES LIKE slow_query_log;开启后分析/var/log/mysql/slow.log。临时关闭Cloudflare代理把DNS记录设为灰色直接访问源站IP。如果IP访问也慢问题100%在源站。4.3 缓存未命中Cache Miss率高的原因与对策在Analytics → Dashboard查看“Cache Summary”。如果Cache Miss 30%说明大量请求没走缓存。常见原因原因诊断方法解决方案URL带随机查询参数curl -I https://example.com/style.css?v123456在Page Rules中对*.css规则启用“Cache Query String: Ignore”响应头禁止缓存curl -I https://example.com/page.html查看Cache-Control: no-cache修改源站代码对静态资源返回Cache-Control: public, max-age31536000POST请求被误判访问表单提交页状态码200但Cache Status是DYNAMIC创建Page Rule匹配该URL设置“Cache Level: Bypass”Cookie导致不缓存curl -I -b sessionabc https://example.com/在Page Rules中对需要缓存的URL添加“Cache Level: Cache Everything”它会忽略Cookie4.4 HTTPS混合内容Mixed Content警告前端资源加载失败的根源浏览器地址栏出现“不安全”提示F12 Console里一堆Mixed Content: The page at https://... was loaded over HTTPS, but requested an insecure resource http://...。这是因为你的HTML里写了script srchttp://cdn.example.com/jquery.js。根治方案在源站代码中将所有http://开头的资源URL改为//cdn.example.com/jquery.js协议相对URL在Cloudflare Page Rules中添加一条规则*example.com/*→ “Automatic HTTPS Rewrites: On”。这个功能会自动将HTML中http://链接重写为https://但仅限于同一域名下的资源。注意Automatic HTTPS Rewrites对跨域资源如http://fonts.googleapis.com无效必须手动改源码。4.5 WordPress后台登录循环重定向Redirect Loop现象输入用户名密码后页面不断刷新URL变成/wp-login.php?redirect_tohttps%3A%2F%2Fexample.com%2Fwp-admin%2Freauth1。这是HTTPS重定向死循环。原因WordPress检测到$_SERVER[HTTPS]为off因为Cloudflare到源站是HTTP但实际用户是HTTPS访问于是强制跳转跳转后又检测到off无限循环。解决方案在WordPress根目录wp-config.php顶部添加if (isset($_SERVER[HTTP_CF_VISITOR]) strpos($_SERVER[HTTP_CF_VISITOR], https) ! false) { $_SERVER[HTTPS] on; }这行代码告诉WordPress如果Cloudflare的CF-Visitor头里有https就认为当前是HTTPS连接。这是Cloudflare官方推荐的方案。5. 经验沉淀那些只有踩过坑才知道的硬核技巧5.1 “灰度发布”式配置变更用子域名隔离风险永远不要在主域名上直接测试新规则。我的标准流程是创建一个子域名如test.example.comDNS指向同一源站IP在Cloudflare中为test.example.com单独添加站点所有新Page Rules、WAF规则、Workers脚本先在test子域名上部署、测试72小时观察Analytics数据确认缓存命中率、错误率、TTFB均达标后再复制规则到主域名。这招帮我避开了至少7次线上事故。有一次我为一个电商网站测试“自动重写图片URL为WebP格式”的Workers结果发现iOS Safari不兼容如果直接上主站会导致商品图全白。用test子域名提前发现了。5.2 源站IP保护的终极方案不止于隐藏Cloudflare的“隐藏源站IP”是基本功但高手会做两层防护第一层Cloudflare代理。确保所有DNS记录都是橙色源站IP不出现在任何公开DNS记录中第二层源站防火墙白名单。只允许Cloudflare IP段访问80/443端口其他所有IP一律DROP第三层Nginx访问控制。在Nginx配置中添加set $allow_access 0; if ($http_cf_connecting_ip ~ ^173\.245\.48\.[0-9]$) { set $allow_access 1; } if ($http_cf_connecting_ip ~ ^103\.21\.244\.[0-9]$) { set $allow_access 1; } # ... 添加所有Cloudflare IP段 if ($allow_access 0) { return 403; }这样即使有人通过其他方式如Host头注入绕过CloudflareNginx也会拒绝服务。5.3 缓存预热Cache Warm-up的土办法新网站上线或大促前需要让热门页面提前缓存在Cloudflare节点。免费层没有API触发预热但我用一个Python脚本模拟用户访问import requests urls [ https://example.com/, https://example.com/blog/, https://example.com/product/123 ] headers {User-Agent: Mozilla/5.0 (compatible; Cloudflare-Warmup/1.0)} for url in urls: r requests.get(url, headersheaders, timeout10) print(f{url}: {r.status_code}, Cache-Status: {r.headers.get(CF-Cache-Status)})每天凌晨3点自动运行连续3天热门页面缓存命中率就能从0%拉到95%以上。简单粗暴但有效。5.4 监控告警用UptimeRobot免费监控Cloudflare状态Cloudflare自身不提供状态告警。我用UptimeRobot免费版支持50个监控点监控三个关键URL主域名https://example.com检测整体可用性一个静态资源https://example.com/style.css检测缓存是否生效一个动态接口https://example.com/api/health检测源站连通性。当任一监控失败时UptimeRobot邮件告警。结合Cloudflare的Analytics Dashboard我能第一时间判断是Cloudflare节点问题、还是源站问题、还是我的配置问题。最后分享一个小技巧在Cloudflare Analytics的“Overview”页面点击右上角“Export”按钮可以导出CSV数据。我用Excel做了个仪表盘自动计算“缓存命中率趋势”、“Top 10 Error URLs”、“国家访问分布”。数据不会说谎它告诉我哪个Page Rule该优化哪个国家的用户该加节点。这比任何教程都管用。
返回列表