<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/rss/pretty-feed-v3.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>LegspCpd Blog</title><description>LegspCpd Blog</description><link>https://blog.legspcpd.top/</link><language>zh-CN</language><templateTheme>Firefly</templateTheme><templateThemeVersion>6.8.11</templateThemeVersion><templateThemeUrl>https://github.com/CuteLeaf/Firefly</templateThemeUrl><lastBuildDate>2026年8月28日 19:32:58</lastBuildDate><managingEditor>LegspCpd</managingEditor><webMaster>LegspCpd</webMaster><item><title>仅需10分钟即可制作出一个Cloudflare的优选域名</title><link>https://blog.legspcpd.top/posts/cf-cname/</link><guid isPermaLink="true">https://blog.legspcpd.top/posts/cf-cname/</guid><description>本文介绍如何通过 DNSPod 按运营商线路划分（电信/联通/移动）配置 CDN 优选 CNAME 或 IP，实现国内网络访问加速。</description><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;制作自己的优选域名并不复杂，只需几个简单步骤即可完成。&lt;/p&gt;
&lt;section&gt;&lt;h2&gt;准备工作&lt;a href=&quot;#准备工作&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;在开始之前，你需要准备好以下项：&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;一个 &lt;strong&gt;DNSPod&lt;/strong&gt;（或腾讯云 ESA）账号&lt;/li&gt;
&lt;li&gt;一个自己拥有的已解析域名&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;&lt;em&gt;(本教程以 DNSPod 为例进行演示)&lt;/em&gt;&lt;/p&gt;&lt;hr /&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;操作步骤&lt;a href=&quot;#操作步骤&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;section&gt;&lt;h3&gt;1. 域名接入&lt;a href=&quot;#1-域名接入&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;首先打开 &lt;a href=&quot;https://console.cloud.tencent.com/cns&quot; target=&quot;_blank&quot;&gt;DNSPod控制台&lt;/a&gt;。如果你尚未在平台中添加域名，请先将域名添加进控制台并完成 DNS 修改；已添加域名的直接进入下一步。&lt;/p&gt;&lt;hr /&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;三网优化版&lt;a href=&quot;#三网优化版&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;你可以寻找针对特定运营商的优化域名（如 Cloudflare 优选），或者使用自己测速筛选出的优选域名/IP。&lt;/p&gt;&lt;section&gt;&lt;h4&gt;步骤一：添加解析记录&lt;a href=&quot;#步骤一添加解析记录&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;在域名解析页面点击“添加记录”。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://hub.legspcpd.top/file/1787267358603_image.png&quot; alt=&quot;添加记录&quot; /&gt;&lt;figcaption&gt;添加记录&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h4&gt;步骤二：配置 CNAME 与线路分流&lt;a href=&quot;#步骤二配置-cname-与线路分流&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;将 &lt;strong&gt;记录类型&lt;/strong&gt; 修改为 &lt;code&gt;CNAME&lt;/code&gt;（若使用优选 IP，则记录类型选择 &lt;code&gt;A&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;填写你需要的主机记录（例如 &lt;code&gt;cf&lt;/code&gt; 或 &lt;code&gt;@&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;选择对应的 &lt;strong&gt;线路类型&lt;/strong&gt;（如：电信、联通、移动等）。&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://hub.legspcpd.top/file/1787267501988_image.png&quot; alt=&quot;配置线路类型&quot; /&gt;&lt;figcaption&gt;配置线路类型&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h4&gt;步骤三：填写优选域名并保存&lt;a href=&quot;#步骤三填写优选域名并保存&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;在 &lt;strong&gt;记录值&lt;/strong&gt; 处填写获取到的优选域名（或优选 IP）。&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://hub.legspcpd.top/file/1787267501988_image.png&quot; alt=&quot;填写优选域名&quot; /&gt;&lt;figcaption&gt;填写优选域名&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;点击“确认”完成保存。&lt;/li&gt;
&lt;/ol&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;⚠️ 注意事项：&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;如需为其他运营商做单独优化，重复上述步骤并将线路改为对应运营商即可。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;必须保留一条“默认”线路&lt;/strong&gt;，否则海外或未识别线路的用户将无法正常解析访问。&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;&lt;hr /&gt;&lt;/section&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;2. 连通性与延迟测试&lt;a href=&quot;#2-连通性与延迟测试&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;配置完成后，推荐使用 &lt;a href=&quot;https://www.itdog.cn/&quot; target=&quot;_blank&quot;&gt;ITDOG&lt;/a&gt; 等网络测试工具，输入配置好的域名，测试三网下的解析节点与延迟表现。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://hub.legspcpd.top/file/1787267751808_image.png&quot; alt=&quot;ITDOG测试效果&quot; /&gt;&lt;figcaption&gt;ITDOG测试效果&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;hr /&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;现成方案（开箱即用）&lt;a href=&quot;#现成方案开箱即用&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;如果你不想自行寻找或制作优选域名，可以直接 CNAME 链接至作者提供的优选域名：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;cf.choling.cyou&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;直接使用该域名作为 CNAME 记录值即可享受优化线路。&lt;/p&gt;&lt;/section&gt;</content:encoded><category>技术教程</category><category>DNSPod</category><category>Cloudflare</category><category>优选域名</category><category>CDN</category><category>域名解析</category><author>LegspCpd</author></item><item><title>有限生命里的无限当下</title><link>https://blog.legspcpd.top/posts/day/yxdsm/</link><guid isPermaLink="true">https://blog.legspcpd.top/posts/day/yxdsm/</guid><description>直到多年以后你才恍然大悟，原来那是最后一次，那天午后，你像往常一样退出了游戏界面，那天傍晚你习惯性的和朋友道了，别，那天深夜妈妈轻轻抱了你一下，遗憾的是没人提醒你，也没有任何征兆，最后一次总是悄然而至，不会张扬，没有预兆，当你再回头已是物是人非，我们总以为时间充以为来日方长，以至于我们常常忽略当下，海德格尔认为人类最大的不同就是我们清楚自己终将死亡，这意味着我们每一次呼吸，每一次相遇都有可能是绝对意义上的最后一次，所以有人把每一次都当做最后一次去珍惜，也有人整日忧心，总在害怕最后一次的到来，但无论是景物还是担忧生活都不会因此停下也许。所谓最后一次在大多数时候并不是故事的终点，而是生命中温柔的提醒，别再沉溺过去的美好，也别把未来想的太远，此刻正在发生的才是我们唯一能抓住的真实朋友，过去的最后一次，你沉入时光，而未来仍有无数的第一次在等待着你，所以请试着放慢脚步，环顾四周，更深的去感受当下的人和事，因为没有人知道这是不是最后一次</description><pubDate>Wed, 06 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;直到多年以后你才恍然大悟，原来那是最后一次，那天午后，你像往常一样退出了游戏界面，那天傍晚你习惯性的和朋友道了，别，那天深夜妈妈轻轻抱了你一下，遗憾的是没人提醒你，也没有任何征兆，最后一次总是悄然而至，不会张扬，没有预兆，当你再回头已是物是人非，我们总以为时间充以为来日方长，以至于我们常常忽略当下，海德格尔认为人类最大的不同就是我们清楚自己终将死亡，这意味着我们每一次呼吸，每一次相遇都有可能是绝对意义上的最后一次，所以有人把每一次都当做最后一次去珍惜，也有人整日忧心，总在害怕最后一次的到来，但无论是景物还是担忧生活都不会因此停下也许。所谓最后一次在大多数时候并不是故事的终点，而是生命中温柔的提醒，别再沉溺过去的美好，也别把未来想的太远，此刻正在发生的才是我们唯一能抓住的真实朋友，过去的最后一次，你沉入时光，而未来仍有无数的第一次在等待着你，所以请试着放慢脚步，环顾四周，更深的去感受当下的人和事，因为没有人知道这是不是最后一次&lt;/p&gt;</content:encoded><category>日常</category><category>日常</category><author>LegspCpd</author></item><item><title>EdgeOne优选教程，让EdgeOne在国内更快更稳</title><link>https://blog.legspcpd.top/posts/eo-ys/</link><guid isPermaLink="true">https://blog.legspcpd.top/posts/eo-ys/</guid><description>EdgeOne优选教程，教你如何手动调整DNS解析和路由规则，让腾讯云EdgeOne在国内外访问更快更稳，包含A/AAAA记录优选、边缘函数路由、多IP优选等完整方案。</description><pubDate>Mon, 04 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;section&gt;&lt;h4&gt;作者的优选域名&lt;a href=&quot;#作者的优选域名&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;EdgeOne: &lt;a href=&quot;https://eo.legspcpd.furry.bz/&quot; target=&quot;_blank&quot;&gt;https://eo.legspcpd.furry.bz/&lt;/a&gt;
&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://imghub.legspcpd.indevs.in/file/image/eo1.png&quot; alt=&quot;EdgeOne优选域名测速对比&quot; /&gt;&lt;figcaption&gt;EdgeOne优选域名测速对比&lt;/figcaption&gt;&lt;/figure&gt;
多IP: &lt;a href=&quot;https://e.legspcpd.furry.bz/&quot; target=&quot;_blank&quot;&gt;https://e.legspcpd.furry.bz/&lt;/a&gt;
&lt;figure&gt;&lt;img src=&quot;https://imghub.legspcpd.indevs.in/file/image/cf-cmcc.png&quot; alt=&quot;EdgeOne多IP优选域名测速对比&quot; /&gt;&lt;figcaption&gt;EdgeOne多IP优选域名测速对比&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;hr /&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;什么是优选？&lt;a href=&quot;#什么是优选&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;腾讯云 EdgeOne 是腾讯推出的全球边缘加速平台，覆盖国内三大运营商以及海外众多节点。虽然 EdgeOne 官方分配的节点质量已经不错，但在&lt;strong&gt;部分地区、部分运营商网络&lt;/strong&gt;下，默认分配的边缘节点访问速度仍然可能不尽如人意，甚至出现跨网绕路的情况。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;优选&lt;/strong&gt;，就是通过手动调整 DNS 解析和路由规则，让你的域名解析到国内访问速度更快的 EdgeOne 边缘节点（Anycast IP），从而进一步降低延迟、提升可用性。&lt;/p&gt;&lt;p&gt;从上面的对比图可以看到，优选过的网站响应速度有明显提升，出口 IP 也变多了。这能让你的网站可用性大大提高，并且加载速度显著变快。&lt;/p&gt;&lt;p&gt;要实现优选，我们需要做到两点：&lt;strong&gt;自己控制路由规则&lt;/strong&gt; 和 &lt;strong&gt;自己控制 DNS 解析&lt;/strong&gt;。通过 EdgeOne 的边缘函数（Edge Functions）或自定义路由，我们可以同时实现这两点，下面会详细说明。&lt;/p&gt;&lt;hr /&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;优选原理&lt;a href=&quot;#优选原理&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;首先我们要知道 CDN 是如何通过不同域名给不同内容服务的。&lt;/p&gt;&lt;p&gt;我们可以将其抽象为 &lt;strong&gt;2 层：规则层和解析层&lt;/strong&gt;。当我们在 EdgeOne 上正常添加一条开启了加速的解析时，EdgeOne 会为我们做两件事：&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;帮我们写一条 DNS 解析，指向 EdgeOne 的 Anycast 节点&lt;/li&gt;
&lt;li&gt;在 EdgeOne 创建一条路由规则，将该域名流量接入边缘网络&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;如果你想要优选，实际上你是要&lt;strong&gt;手动更改这个 DNS 解析&lt;/strong&gt;，使其指向一个更快的 EdgeOne 节点。&lt;/p&gt;&lt;p&gt;但是，一旦你将加速关掉（去掉 CNAME/解析），路由规则也可能跟着失效，再访问就会显示 DNS 直接指向源站 IP——这就没法用了。&lt;/p&gt;&lt;p&gt;而 &lt;strong&gt;边缘函数（Edge Functions）&lt;/strong&gt; 和 &lt;strong&gt;自定义路由&lt;/strong&gt; 的出现改变了这一切：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;你可以自己写一条边缘函数路由规则（规则层）&lt;/li&gt;
&lt;li&gt;你可以自己写一条 CNAME 解析到优选节点（解析层）&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;这就是为什么经由边缘函数或自定义路由的流量可以做优选的原因。&lt;/p&gt;&lt;hr /&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;选择优选域名&lt;a href=&quot;#选择优选域名&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;优选的核心就是选择一个国内访问速度更快的 EdgeOne 节点 IP 或域名。&lt;/p&gt;&lt;section&gt;&lt;h3&gt;传统优选域名&lt;a href=&quot;#传统优选域名&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;常用的社区优选域名可以参考：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eo.legspcpd.furry.bz/&quot; target=&quot;_blank&quot;&gt;https://eo.legspcpd.furry.bz/&lt;/a&gt;（作者维护）&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://e.legspcpd.furry.bz/&quot; target=&quot;_blank&quot;&gt;https://e.legspcpd.furry.bz/&lt;/a&gt;（多IP版）&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;这些优选域名通常是通过扫描 EdgeOne 官方 IP 段，找出国内各运营商延迟最低的 IP 整理而成。&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;提示&lt;/strong&gt;：如果你有多个不同运营商的线路需求，多 IP 优选域名通常能提供更好的兼容性，因为不同运营商访问同一 Anycast IP 时可能命中不同的节点。&lt;/p&gt;&lt;/blockquote&gt;&lt;hr /&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;各类优选方案&lt;a href=&quot;#各类优选方案&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;section&gt;&lt;h3&gt;使用 A/AAAA 记录指向指定 IP&lt;a href=&quot;#使用-aaaaa-记录指向指定-ip&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;打开你的 DNS 服务商（腾讯云 DNSPod、阿里云、Cloudflare 等），为你的域名新建一条 A 记录（或 AAAA 记录）。&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;找一个 EdgeOne 优选 IP（可以参考社区测速结果，或者自己用 ITDOG 测速）&lt;/li&gt;
&lt;li&gt;新建 A 记录，&lt;code&gt;记录值&lt;/code&gt; 填优选 IP&lt;/li&gt;
&lt;li&gt;关闭 DNS 服务商自带的 CDN/代理（因为是直接解析到优选 IP）&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;然后我们打开 &lt;a href=&quot;https://www.itdog.cn/&quot; target=&quot;_blank&quot;&gt;ITDOG&lt;/a&gt; 进行测速，验证解析是否生效、速度是否理想。&lt;/p&gt;&lt;p&gt;已经解析完毕，可以使用。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;使用边缘函数路由（Edge Functions）&lt;a href=&quot;#使用边缘函数路由edge-functions&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;如果你有多个域名、多个源站需要同时优选，使用边缘函数会更灵活。&lt;/p&gt;&lt;p&gt;EdgeOne 的边缘函数与 Cloudflare Workers 类似，你可以编写一个简单的反代函数，根据请求的 Host 头将流量转发到对应的源站，同时让域名解析指向优选节点。&lt;/p&gt;&lt;p&gt;核心思路：&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;在 EdgeOne 控制台创建一个边缘函数，根据 &lt;code&gt;Host&lt;/code&gt; 头映射目标源站&lt;/li&gt;
&lt;li&gt;为你的域名创建一条边缘函数路由&lt;/li&gt;
&lt;li&gt;将域名的 DNS 解析指向优选域名（CNAME 到优选节点）&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;这样规则层（边缘函数）和解析层（DNS）就完全由你自己控制了。&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;注意&lt;/strong&gt;：边缘函数方案请务必测试好回源逻辑，确保源站响应正常后再切换正式流量。&lt;/p&gt;&lt;/blockquote&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;多 IP 优选方案&lt;a href=&quot;#多-ip-优选方案&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;单 IP 优选在某个运营商线路异常时可能影响访问。多 IP 方案通过在不同运营商线路、不同节点上做解析分流，提升整体可用性：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;使用支持&lt;strong&gt;线路解析&lt;/strong&gt;的 DNS 服务商（如 DNSPod），针对电信、联通、移动分别解析到不同的优选 IP&lt;/li&gt;
&lt;li&gt;或者使用作者提供的多 IP 优选域名（&lt;code&gt;e.legspcpd.furry.bz&lt;/code&gt;），由服务端自动做多节点负载&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;这种方式在运营商网络波动时依然能保持较好的访问体验。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;配合 EdgeOne Pages / 静态托管&lt;a href=&quot;#配合-edgeone-pages--静态托管&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;如果你使用的是 EdgeOne Pages 托管静态站点：&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;可以直接将绑定到 Pages 的子域名更改为线路分流解析&lt;/li&gt;
&lt;li&gt;也可以将站点迁移到边缘函数方案，配合优选节点使用，效果更灵活&lt;/li&gt;
&lt;/ol&gt;&lt;hr /&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;常见问题&lt;a href=&quot;#常见问题&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Q：优选后我的源站会不会暴露？&lt;/strong&gt;
A：不会。优选只是让边缘节点更快地接入，回源请求仍然由边缘节点发起，源站 IP 并不会直接暴露给访客。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Q：优选 IP 失效了怎么办？&lt;/strong&gt;
A：建议定期使用 ITDOG 等工具测速，如果发现某条线路明显变慢，及时更换解析到的优选 IP。多 IP 方案能有效降低单点失效的影响。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Q：和 Cloudflare 优选有什么区别？&lt;/strong&gt;
A：思路完全一致，只是平台不同。EdgeOne 在国内的节点覆盖和接入质量本身就不错，优选能进一步挖掘潜力，尤其适合对延迟敏感的用户。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Q：可以同时用多个优选方案吗？&lt;/strong&gt;
A：可以。比如主域名用边缘函数方案，备用域名用 A 记录方案，相互冗余，可用性更高。&lt;/p&gt;&lt;hr /&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;总结&lt;a href=&quot;#总结&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;EdgeOne 优选的核心就是&lt;strong&gt;自己控制 DNS 解析 + 自己控制路由规则&lt;/strong&gt;：&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;先选择一个国内访问快的优选节点&lt;/li&gt;
&lt;li&gt;通过 A/AAAA 记录、边缘函数或线路解析，将域名解析到优选节点&lt;/li&gt;
&lt;li&gt;定期测速、维护，保证长期稳定&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;希望这篇教程能帮到你的网站加速。如果你有更好的 EdgeOne 优选思路，欢迎在评论区交流。&lt;/p&gt;&lt;/section&gt;</content:encoded><category>EdgeOne</category><category>EdgeOne</category><category>EdgeOne优选</category><category>EdgeOne优选教程</category><category>教程</category><category>CDN</category><category>加速</category><author>LegspCpd</author></item><item><title>Cloudflare优选教程，让Cloudflare在国内不再是减速器</title><link>https://blog.legspcpd.top/posts/cf-ys/</link><guid isPermaLink="true">https://blog.legspcpd.top/posts/cf-ys/</guid><description>CF: https://cf.legspcpd.furry.bz/

真 移动优化: https://cmcc.legspcpd.furry.bz/</description><pubDate>Sun, 19 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;section&gt;&lt;h4&gt;作者的优选域名&lt;a href=&quot;#作者的优选域名&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;CF: &lt;a href=&quot;https://cf.legspcpd.furry.bz/&quot; target=&quot;_blank&quot;&gt;https://cf.legspcpd.furry.bz/&lt;/a&gt;
&lt;img src=&quot;https://imghub.legspcpd.indevs.in/file/image/cf.png&quot; alt=&quot;cf&quot; /&gt;
真 移动优化: &lt;a href=&quot;https://cmcc.legspcpd.furry.bz/&quot; target=&quot;_blank&quot;&gt;https://cmcc.legspcpd.furry.bz/&lt;/a&gt;
&lt;img src=&quot;https://imghub.legspcpd.indevs.in/file/image/cf-cmcc.png&quot; alt=&quot;cf cmcc&quot; /&gt;&lt;/p&gt;&lt;hr /&gt;&lt;/section&gt;
&lt;section&gt;&lt;h4&gt;什么是优选？&lt;a href=&quot;#什么是优选&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;简单来说，优选就是选择一个国内访问速度更快的Cloudflare节点。&lt;/p&gt;&lt;p&gt;Cloudflare官方分配给我们的IP，在国内访问时延迟往往较高，甚至可能出现无法访问的情况。而通过优选，我们可以手动将域名解析到那些国内访问更快的Cloudflare IP，从而显著提升网站的访问速度和可用性。&lt;/p&gt;&lt;p&gt;从上面的对比图可以看到，优选过的网站响应速度有很大提升，出口IP也变多了。这能让你的网站可用性大大提高，并且加载速度显著变快。&lt;/p&gt;&lt;p&gt;要实现优选，我们需要做到两点：自己控制路由规则 和 自己控制DNS解析。通过Cloudflare SaaS或Worker路由，我们可以同时实现这两点，下面会详细说明&lt;/p&gt;&lt;hr /&gt;&lt;/section&gt;
&lt;section&gt;&lt;h4&gt;优选原理&lt;a href=&quot;#优选原理&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;首先我们要知道CDN是如何通过不同域名给不同内容的。&lt;/p&gt;&lt;p&gt;我们可以将其抽象为2层：规则层和解析层。当我们普通的在Cloudflare添加一条开启了小黄云的解析，Cloudflare会为我们做两件事：&lt;/p&gt;&lt;p&gt;帮我们写一条DNS解析指向Cloudflare
在Cloudflare创建一条路由规则
如果你想要优选，实际上你是要手动更改这个DNS解析，使其指向一个更快的Cloudflare节点。&lt;/p&gt;&lt;p&gt;但是，一旦你将小黄云关闭，路由规则也会被删除，再访问就会显示DNS直接指向IP——这就没法用了。&lt;/p&gt;&lt;p&gt;而SaaS和Worker路由的出现改变了这一切。&lt;/p&gt;&lt;p&gt;使用SaaS后，Cloudflare不再帮你做这两件事了，这两件事你都可以自己做了：&lt;/p&gt;&lt;p&gt;1.你可以自己写一条SaaS规则（规则层）
2.你可以自己写一条CNAME解析到优选节点（解析层）&lt;/p&gt;&lt;p&gt;使用Worker路由同理，你创建Worker路由规则后，DNS解析就可以随便指向任何优选节点了。&lt;/p&gt;&lt;p&gt;这就是为什么经由SaaS或Worker路由的流量可以做优选的原因。&lt;/p&gt;&lt;hr /&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;选择优选域名&lt;a href=&quot;#选择优选域名&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;优选的核心就是选择一个国内访问速度更快的Cloudflare节点IP或域名。&lt;/p&gt;&lt;section&gt;&lt;h2&gt;传统优选域名&lt;a href=&quot;#传统优选域名&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;常用的社区优选域名：&lt;a href=&quot;https://cf.090227.xyz/&quot; target=&quot;_blank&quot;&gt;https://cf.090227.xyz&lt;/a&gt;&lt;/p&gt;&lt;p&gt;这些优选域名通常是通过扫描Cloudflare官方IP段，找出国内延迟最低的IP整理而成。&lt;/p&gt;&lt;hr /&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;各类优选方案&lt;a href=&quot;#各类优选方案&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;section&gt;&lt;h2&gt;更简单的优选方法&lt;a href=&quot;#更简单的优选方法&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;section&gt;&lt;h3&gt;使用A/AAAA指向指定IPV4/V6&lt;a href=&quot;#使用aaaaa指向指定ipv4v6&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;打开Cloudflare或者其他云平台
新建一个A记录
&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://imghub.legspcpd.indevs.in/file/image/cf-jl.png&quot; alt=&quot;cf-jl.png&quot; /&gt;&lt;figcaption&gt;cf-jl.png&lt;/figcaption&gt;&lt;/figure&gt;
找一个CF优选IP，我这里拿&lt;strong&gt;104.20.28.171&lt;/strong&gt;这个IP做例子
&lt;figure&gt;&lt;img src=&quot;https://imghub.legspcpd.indevs.in/file/image/ip.png&quot; alt=&quot;ip.png&quot; /&gt;&lt;figcaption&gt;ip.png&lt;/figcaption&gt;&lt;/figure&gt;
按照这样填写&lt;p&gt;&lt;/p&gt;&lt;p&gt;我们打开ITDOG进行测速
&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://imghub.legspcpd.indevs.in/file/image/itdog-test-ip.png&quot; alt=&quot;itdog-test-ip.png&quot; /&gt;&lt;figcaption&gt;itdog-test-ip.png&lt;/figcaption&gt;&lt;/figure&gt;
已经解析完毕，可以使用&lt;p&gt;&lt;/p&gt;&lt;hr /&gt;&lt;/section&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;Worker项目优选（最简单）&lt;a href=&quot;#worker项目优选最简单&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;接下来编写Worker路由&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;// 域名前缀映射配置&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;domain_mappings&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&apos;源站.com&apos;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;最终访问头.&apos;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;//例如：&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;//&apos;gitea.072103.xyz&apos;: &apos;gitea.&apos;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;//则你设置Worker路由为gitea.*都将会反代到gitea.072103.xyz&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;};&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;addEventListener&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&apos;fetch&apos;&lt;/span&gt;&lt;span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;event&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;=&amp;gt;&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;event&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;respondWith&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;handleRequest&lt;/span&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;event&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;request&lt;/span&gt;&lt;span&gt;));&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;});&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;13&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;async&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;handleRequest&lt;/span&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;request&lt;/span&gt;&lt;span&gt;) {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;14&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;url&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;URL&lt;/span&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;request&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;url&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;15&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;current_host&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;url&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;host&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;16&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;17&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;// 强制使用 HTTPS&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;18&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;url&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;protocol&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;===&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;http:&apos;&lt;/span&gt;&lt;span&gt;) {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;19&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;url&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;protocol&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;https:&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;20&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Response&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;redirect&lt;/span&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;url&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;href&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;301&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;21&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;22&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;23&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;host_prefix&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;getProxyPrefix&lt;/span&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;current_host&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;24&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;!&lt;/span&gt;&lt;span&gt;&lt;span&gt;host_prefix&lt;/span&gt;&lt;span&gt;) {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;25&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Response&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&apos;Proxy prefix not matched&apos;&lt;/span&gt;&lt;span&gt;, { &lt;/span&gt;&lt;span&gt;status&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;404&lt;/span&gt;&lt;span&gt; });&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;26&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;27&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;28&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;// 查找对应目标域名&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;29&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;let&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;target_host&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;null&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;30&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span&gt;origin_domain&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;prefix&lt;/span&gt;&lt;span&gt;] &lt;/span&gt;&lt;span&gt;of&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Object&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;entries&lt;/span&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;domain_mappings&lt;/span&gt;&lt;span&gt;)) {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;31&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;host_prefix&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;===&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;prefix&lt;/span&gt;&lt;span&gt;) {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;32&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;target_host&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;origin_domain&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;33&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;34&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;35&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;36&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;37&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;!&lt;/span&gt;&lt;span&gt;&lt;span&gt;target_host&lt;/span&gt;&lt;span&gt;) {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;38&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Response&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&apos;No matching target host for prefix&apos;&lt;/span&gt;&lt;span&gt;, { &lt;/span&gt;&lt;span&gt;status&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;404&lt;/span&gt;&lt;span&gt; });&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;39&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;40&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;41&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;// 构造目标 URL&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;42&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new_url&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;URL&lt;/span&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;request&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;url&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;43&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;new_url&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;protocol&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;https:&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;44&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;new_url&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;host&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;target_host&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;45&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;46&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;// 创建新请求&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;47&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new_headers&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Headers&lt;/span&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;request&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;headers&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;48&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;new_headers&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;set&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&apos;Host&apos;&lt;/span&gt;&lt;span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;target_host&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;49&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;new_headers&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;set&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&apos;Referer&apos;&lt;/span&gt;&lt;span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;new_url&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;href&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;50&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;51&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;try&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;52&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;response&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;await&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;fetch&lt;/span&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;new_url&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;href&lt;/span&gt;&lt;span&gt;, {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;53&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;method&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;request&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;method&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;54&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;headers&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new_headers&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;55&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;body&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;request&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;method&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;!==&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;GET&apos;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;request&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;method&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;!==&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;HEAD&apos;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;request&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;body&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;undefined&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;56&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;redirect&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;manual&apos;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;57&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;});&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;58&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;59&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;// 复制响应头并添加CORS&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;60&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;response_headers&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Headers&lt;/span&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;response&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;headers&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;61&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;response_headers&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;set&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&apos;access-control-allow-origin&apos;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&apos;*&apos;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;62&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;response_headers&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;set&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&apos;access-control-allow-credentials&apos;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&apos;true&apos;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;63&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;response_headers&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;set&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&apos;cache-control&apos;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&apos;public, max-age=600&apos;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;64&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;response_headers&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;delete&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&apos;content-security-policy&apos;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;65&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;response_headers&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;delete&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&apos;content-security-policy-report-only&apos;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;66&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;67&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Response&lt;/span&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;response&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;body&lt;/span&gt;&lt;span&gt;, {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;68&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;status&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;response&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;status&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;69&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;statusText&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;response&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;statusText&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;70&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;headers&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;response_headers&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;71&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;});&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;72&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;} &lt;/span&gt;&lt;span&gt;catch&lt;/span&gt;&lt;span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;err&lt;/span&gt;&lt;span&gt;) {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;73&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Response&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;`Proxy Error: &lt;/span&gt;&lt;span&gt;${&lt;/span&gt;&lt;span&gt;err&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;message&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;`&lt;/span&gt;&lt;span&gt;, { &lt;/span&gt;&lt;span&gt;status&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;502&lt;/span&gt;&lt;span&gt; });&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;74&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;75&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;76&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;77&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;getProxyPrefix&lt;/span&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;hostname&lt;/span&gt;&lt;span&gt;) {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;78&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;prefix&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;of&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Object&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;values&lt;/span&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;domain_mappings&lt;/span&gt;&lt;span&gt;)) {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;79&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;hostname&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;startsWith&lt;/span&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;prefix&lt;/span&gt;&lt;span&gt;)) {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;80&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;prefix&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;81&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;82&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;83&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;null&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;84&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;span&gt;展开&lt;/span&gt;&lt;span&gt;收起&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;创建路由:
&lt;img src=&quot;https://imghub.legspcpd.indevs.in/file/image/cf-ly.png&quot; alt=&quot;cf ly&quot; /&gt;
像这样
&lt;img src=&quot;https://imghub.legspcpd.indevs.in/file/image/cf-lytx.png&quot; alt=&quot;cf lytx&quot; /&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;strong&gt;(SaaS将会引用二叉树树的教程)&lt;/strong&gt;&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;传统SaaS优选&lt;a href=&quot;#传统saas优选&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;section&gt;&lt;h3&gt;SaaS做了什么？&lt;a href=&quot;#saas做了什么&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Cloudflare SaaS是一个不需要你改变一个域名的NS服务器，就可以让其受益于Cloudflare网络的功能。&lt;/p&gt;&lt;p&gt;当一个域名被SaaS到一个已经在Cloudflare的域名后，它就完整受益所有Cloudflare服务。如我将 umami.acofork.com SaaS 到 2x.nz，我就可以在 2x.nz 里为 umami.acofork.com 写规则了：
&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://imghub.legspcpd.indevs.in/file/image/cf-saas-1.webp&quot; alt=&quot;cf-saas-1.webp&quot; /&gt;&lt;figcaption&gt;cf-saas-1.webp&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;img src=&quot;https://imghub.legspcpd.indevs.in/file/image/cf-saas-2.webp&quot; alt=&quot;cf-saas-2.webp&quot; /&gt;&lt;figcaption&gt;cf-saas-2.webp&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;img src=&quot;https://imghub.legspcpd.indevs.in/file/image/cf-saas-3.webp&quot; alt=&quot;cf-saas-3.webp&quot; /&gt;&lt;figcaption&gt;cf-saas-3.webp&lt;/figcaption&gt;&lt;/figure&gt;
Worker中的路由规则也适用：
&lt;figure&gt;&lt;img src=&quot;https://imghub.legspcpd.indevs.in/file/image/cf-saas-4.webp&quot; alt=&quot;cf-saas-4.webp&quot; /&gt;&lt;figcaption&gt;cf-saas-4.webp&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;SaaS优选步骤
简单易懂（pro.yourdomain.com 是最终访问域名）： CF SaaS DNS origin.yourdomain.com -&amp;gt; 源站开小黄云 cdn.yourdomain.com -&amp;gt; cf优选域名 pro.yourdomain.com -&amp;gt; cdn.yourdomain.com&lt;/p&gt;&lt;p&gt;CF SaaS 添加自定义主机名pro.yourdomain.com 源站为origin.yourdomain.com&lt;/p&gt;&lt;p&gt;警告
Cloudflare最近将新接入的域名SSL默认设为了完全，记得将 SSL 改为灵活。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;准备工作&lt;a href=&quot;#准备工作&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;我们需要一个域名或两个域名（单域名直接用子域名即可。双域名比如：onani.cn和acofork.cn）。&lt;/p&gt;&lt;p&gt;如果在同一CF账号下不可用，请尝试将俩域名放置在不同账号&lt;/p&gt;&lt;p&gt;这里我们让onani.cn成为主力域名，让acofork.cn成为辅助域名。&lt;/p&gt;&lt;p&gt;单域名效果：
&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://imghub.legspcpd.indevs.in/file/image/cf-fastip-1.webp&quot; alt=&quot;cf-fastip-1.webp&quot; /&gt;&lt;figcaption&gt;cf-fastip-1.webp&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;具体步骤
首先新建一个DNS解析，指向你的源站，开启cf代理
&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://imghub.legspcpd.indevs.in/file/image/c94c34ee262fb51fb5697226ae0df2d804bf76fe.webp&quot; alt=&quot;c94c34ee262fb51fb5697226ae0df2d804bf76fe.webp&quot; /&gt;&lt;figcaption&gt;c94c34ee262fb51fb5697226ae0df2d804bf76fe.webp&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;前往辅助域名的 SSL/TLS -&amp;gt; 自定义主机名。设置回退源为你刚才的DNS解析的域名：xlog.acofork.cn（推荐 HTTP 验证）&lt;/p&gt;&lt;p&gt;点击添加自定义主机名。设置一个自定义主机名，比如 onani.cn，然后选择自定义源服务器，填写第一步的域名，即 xlog.acofork.cn。&lt;/p&gt;&lt;p&gt;如果你想要创建多个优选也就这样添加，一个自定义主机名对应一个自定义源服务器。如果你将源服务器设为默认，则源服务器是回退源指定的服务器，即 xlog.acofork.cn&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://imghub.legspcpd.indevs.in/file/image/f6170f009c43f7c6bee4c2d29e2db7498fa1d0dc.webp&quot; alt=&quot;f6170f009c43f7c6bee4c2d29e2db7498fa1d0dc.webp&quot; /&gt;&lt;figcaption&gt;f6170f009c43f7c6bee4c2d29e2db7498fa1d0dc.webp&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;继续在你的辅助域名添加一条解析。CNAME到优选节点：如cloudflare.182682.xyz，不开启cf代理
&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://imghub.legspcpd.indevs.in/file/image/4f9f727b0490e0b33d360a2363c1026003060b29.webp&quot; alt=&quot;4f9f727b0490e0b33d360a2363c1026003060b29.webp&quot; /&gt;&lt;figcaption&gt;4f9f727b0490e0b33d360a2363c1026003060b29.webp&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;最后在你的主力域名添加解析。域名为之前在辅助域名的自定义主机名（onani.cn），目标为刚才的cdn.acofork.cn，不开启cf代理
&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://imghub.legspcpd.indevs.in/file/image/6f51cb2a42140a9bf364f88a5715291be616a254.webp&quot; alt=&quot;6f51cb2a42140a9bf364f88a5715291be616a254.webp&quot; /&gt;&lt;figcaption&gt;6f51cb2a42140a9bf364f88a5715291be616a254.webp&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;优选完毕，确保优选有效后尝试访问
&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://imghub.legspcpd.indevs.in/file/image/cf-fastip-10.webp&quot; alt=&quot;cf-fastip-10.webp&quot; /&gt;&lt;figcaption&gt;cf-fastip-10.webp&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;（可选）你也可以将cdn子域的NS服务器更改为阿里云\华为云\腾讯云云解析做线路分流解析&lt;/p&gt;&lt;p&gt;优选工作流：用户访问 -&amp;gt; 由于最终访问的域名设置了CNAME解析，所以实际上访问了cdn.acofork.cn，并且携带 源主机名：onani.cn -&amp;gt; 到达优选域名进行优选 -&amp;gt; 优选结束，cf边缘节点识别到了携带的 源主机名：onani.cn 查询发现了回退源 -&amp;gt; 回退到回退源内容（xlog.acofork.cn） -&amp;gt; 访问成功&lt;/p&gt;&lt;hr /&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;针对于Cloudflare Page&lt;a href=&quot;#针对于cloudflare-page&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;你可以直接将你绑定到Page的子域名直接更改NS服务器到阿里云\华为云\腾讯云云解析做线路分流解析&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;将您的Page项目升级为Worker项目，使用Worker优选方案（更简单）。详细方法见：【CF Page一键迁移到Worker？好处都有啥？-哔哩哔哩】 &lt;a href=&quot;https://www.bilibili.com/video/BV1wBTEzREcb&quot; target=&quot;_blank&quot;&gt;https://www.bilibili.com/video/BV1wBTEzREcb&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;hr /&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;针对于Cloudflare Workers&lt;a href=&quot;#针对于cloudflare-workers&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;在Workers中添加路由，然后直接将你的路由域名从指向xxx.worker.dev改为优选域名即可&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;如果是外域，SaaS后再添加路由即可，就像：
&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://imghub.legspcpd.indevs.in/file/image/cf-fastip-12.webp&quot; alt=&quot;cf-fastip-12.webp&quot; /&gt;&lt;figcaption&gt;cf-fastip-12.webp&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;img src=&quot;https://imghub.legspcpd.indevs.in/file/image/cf-fastip-13.webp&quot; alt=&quot;cf-fastip-13.webp&quot; /&gt;&lt;figcaption&gt;cf-fastip-13.webp&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;hr /&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;针对于使用了各种CF规则的网站&lt;a href=&quot;#针对于使用了各种cf规则的网站&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;你只需要让规则针对于你的 &lt;strong&gt;最终访问域名&lt;/strong&gt; ，因为CF的规则是看主机名的，而不是看是由谁提供的。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;针对于虚拟主机&lt;a href=&quot;#针对于虚拟主机&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;保险起见，建议将源站和优选域名同时绑定到你的虚拟主机，保证能通再一个个删。&lt;/p&gt;&lt;/section&gt;</content:encoded><category>CloudFlare</category><category>CloudFlare</category><category>CloudFlare优选</category><category>CloudFlare优选教程</category><category>教程</category><author>LegspCpd</author></item><item><title>日记</title><link>https://blog.legspcpd.top/posts/day/</link><guid isPermaLink="true">https://blog.legspcpd.top/posts/day/</guid><description>感觉有点累啊…</description><pubDate>Tue, 06 May 1997 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;感觉有点累啊…&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;推荐歌曲:&lt;/p&gt;
&lt;p&gt;Zeraphym - Lifeline
这首歌对我心灵造成的震撼，使我无法用语言来描述，因为我不觉得世界上有哪个词能形容这首歌的完美！！！&lt;/p&gt;</content:encoded><category>日记</category><category>日记</category><author>LegspCpd</author></item><item><title>记录</title><link>https://blog.legspcpd.top/posts/qilu/</link><guid isPermaLink="true">https://blog.legspcpd.top/posts/qilu/</guid><description>Github反向代理：https://v-gh.legspcpd.de5.net/</description><pubDate>Mon, 01 Jan 1900 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Github反向代理：&lt;a href=&quot;https://v-gh.legspcpd.de5.net/&quot; target=&quot;_blank&quot;&gt;https://v-gh.legspcpd.de5.net/&lt;/a&gt;&lt;/p&gt;</content:encoded><category>记录</category><category>记录</category><author>LegspCpd</author></item></channel></rss>