内容提要
作者因电信封堵443端口导致博客源站无法访问,尝试多种方案:CloudFlare不支持自定义回源端口,花生壳需备案,投诉电信无果。最终采用CloudFlare→腾讯云海外CDN→NAS源站的临时方案,并为后台单独配置admin域名、修改WordPress配置及Nginx规则以加速。后又用阿里云海外CDN与腾讯云国内CDN双层中转,解决CloudFlare免费版限制,形成复杂部署架构。
延伸解读
电信封堵443端口后的可行路径
作者因电信封堵443端口导致CloudFlare无法回源,尝试多种方案后,最终采用CloudFlare→腾讯云海外CDN→NAS源站的临时架构。这反映出在端口受限且无法备案的情况下,借助支持自定义回源端口的CDN进行中转是可行思路,但需接受速度下降的代价。
CDN选型的实际限制
文章测试发现,CloudFlare免费版不支持自定义回源端口;腾讯云海外CDN支持自定义端口但国内访问延迟高;阿里云海外CDN虽支持自定义端口且国内延迟较低,但回源到国内源站不稳定,常出现50x错误。这些限制说明免费或低成本方案往往需要在功能与稳定性之间权衡。
后台独立域名的配置要点
为加速后台,作者为admin域名单独配置WordPress:在wp-config.php定义WP_HOME和WP_SITEURL,修改主题函数解决上传图片和RESTful API的域名指向,并调整CloudFlare插件中的get_site_url为get_home_url。此外,通过Nginx规则限制admin域名仅访问后台资源,避免前台页面通过该域名暴露。
双层CDN中转的取舍
作者最终用阿里云海外CDN回源到腾讯云国内CDN,再回源到NAS,解决了CloudFlare免费版不支持自定义回源HOST和端口的问题。这种双层架构提升了动态内容的访问速度,但部署复杂,且依赖多个CDN服务的稳定性,适合有折腾意愿且能接受维护成本的用户参考。
Q&A
电信封堵443端口后,为什么CloudFlare回源会失败?
因为CloudFlare回源时默认使用443端口,而电信封堵了443端口,导致CloudFlare无法连接到源站,回源请求被拒绝。
作者尝试了哪些方案来解决443端口被封的问题?
作者尝试了:1. 研究CloudFlare能否指定源站端口(不支持);2. 搬迁博客到国外云主机;3. 在腾讯云主机上搭建反向代理;4. 使用花生壳内网穿透(需备案且收费);5. 投诉电信(无果);6. 寻求支持自定义端口的海外CDN;7. 利用CF的Workers做反向代理。
为什么最终选择腾讯云海外CDN而不是阿里云海外CDN?
因为腾讯云海外CDN支持自定义回源端口,且作者是内测用户;而阿里云海外CDN虽然也支持自定义回源端口,但回源到国内源站不稳定,经常出现504或503错误。
如何为WordPress后台配置独立的admin域名?
步骤包括:1. 在wp-config.php中定义WP_HOME和WP_SITEURL,并强制SSL;2. 在主题functions.php中添加函数修改上传图片地址;3. 修改RESTful API域名指向admin域名;4. 修复CloudFlare插件兼容性问题;5. 添加替换前台静态地址的代码;6. 在Nginx中配置admin域名的虚拟主机,限制访问范围。
最终的博客部署架构是怎样的?
最终架构为:CloudFlare(全缓存)→ 阿里云海外CDN(回源腾讯CNAME,缓存静态文件)→ 腾讯云国内CDN(缓存静态文件)→ DDNS+端口 → NAS源站。利用两层CDN中转解决了CloudFlare免费版不支持自定义回源端口和回源HOST的问题。
使用CloudFlare Workers做反向代理有什么优缺点?
优点是可以代理到自定义源站(如腾讯云admin二级域名),实现访问;缺点是Workers每次实时拉取内容,没有缓存,需要自行编写缓存逻辑,比较折腾。