兰 亭 墨 苑
期货 · 量化 · AI · 终身学习
首页
归档
编辑文章
标题 *
URL 别名 *
内容 *
(支持 Markdown 格式)
DNS是一种域名 [网站](https://developers.cloudflare.com/products) 转化为IP的服务,Cloudflare作为全球最大的DNS服务商,提供免费的DNS解析服务 只需要将域名托管到Cloudflare开启小黄云后浏览器的流量会先经过Cloudflare,再到达源服务器,开启之后会提供CDN、SSL证书、DDos防御等服务CDN服务:通过遍布全球的数据中心,缓存客户网站的静态资源,比如JS文件、CSS图像、视频等,当请求数据时,可以从地理位置最近的CDN节点获取,加快加载速度,缓解服务器压力SSL证书:免费提供SSL证书,自动设置好HTTPS加密,自动将HTTP访问转为HTTPS,增加通讯安全性隐藏真实IP:打开小黄云隐藏网站的真实IP地址,攻击者最多追溯到CDN节点,可有效防止网站真实IP泄露,保护原站安全DDos防御:隐藏真实IP后,DDos攻击最多也只能攻击到CDN节点,Cloudflare曾经阻止了历来规模最大的 DDoS 攻击 这里吃瓜 50,如果客户用了其他的防御,估计都要破产了Pages部署:Cloudflare Pages是一个免费且易用静态网站托管服务,可以在Github上创建一个仓库,把网站内容丢进去,在Cloudflare里链接仓库,网站即可上线,更新网站只需要往仓库提交代码即可,Cloudflare会自动为网站分配域名,自动完成部署构建,这应该算是最快上线网站办法了吧Workers部署:是Cloudflare提供的一个无服务器计算服务,编写代码可以是多种类代码,比如JAVAscript、python、Typescript,用户部署之后就会上传到全世界的CDN节点,当请求数据时,可以从地理位置最近的CDN节点会响应请求,执行代码的业务逻辑,减少延迟,提高性能,这种架构被称为边缘计算。worker可以干各种事情,比如返回一段数据、做重定向、、做过滤、做代理、做内网穿透、做缓存等等。worker可以代理世间万物!!!。每天提供10万次的最大请求次数,用不完根本用不完Workers AI:Cloudflare为Wokers添加了AI模型的能力,可以在wokrer里调用许多开源大模型,让woker也获得部分AI能力R2 对象存储:提供了对象存储服务,提供每月10GB的免费存储空间,1千万次的免费请求次数,勾选启用你的R2数据库就可以被全世界读取Tunnels:如果你想在外网访问家里的设备,又很难申请到公网IP,就可以使用Cloudflare Tunnels实现的免费内网穿透服务,这种方案配置简单,无数量限制、无流量限制Turnstile:Cloudflare五秒盾,人机小验证,只需要一段简单免费的代码片段,即可为网站添加一个强大的反爬虫人机验证功能,不需要进行挫败感慢慢的人机拼图验证(我觉得拼图真废!)Images:可编程的图像处理和优化平台,只需要编写简单的URL规则,就可以对图像进行缩放、裁剪、格式转化、水印等处理,并且自动优化图像以加快加载速度Cloudflare电子邮件:将域名托管到Cloudflare后,进入域名,点击电子邮件路由,这里可以创建最多200个临时邮箱,也可以开启catch-all功能,将所有发送到此域名的邮件都转发到指定邮箱,这样你就拥有了无限个可以收件的邮箱 ### 功能 # Cloudflare Workers:释放边缘计算的力量 你对 Cloudflare Workers 作为一种强大的无服务器平台,将计算推向网络边缘的描述非常准确。正如你所理解的那样:通过将使用 JavaScript、TypeScript 和 Python 等语言编写的代码部署到 Cloudflare 的全球 CDN,开发者可以在更接近终端用户的地方执行业务逻辑。这种边缘计算模型显著降低了延迟,并提升了各种应用的性能。 正如你所指出的,Cloudflare Workers 的功能非常丰富。下面我们将更深入地探讨你提到的各项功能,展示 Workers 如何真正地“代理一切”! ## 架构:边缘的 V8 Isolates Cloudflare Workers 的核心技术是 V8 Isolates——这正是为 Google Chrome 提供 JavaScript 执行引擎的技术。与可能使用容器或虚拟机的传统无服务器平台不同,Workers 采用了轻量级的 isolates。这种架构让冷启动几乎瞬时完成,并能在单台物理机器上运行成千上万的函数,使平台在效率和可扩展性方面表现卓越。当请求到达时,它会被路由到 Cloudflare 在全球数百个数据中心中最近的一个,Worker 脚本即在此处执行,以将往返时间降到最低。 ## 多样的语言支持 虽然最初专注于 JavaScript,但 Cloudflare 已扩展了语言支持,面向更广泛的开发者社区。你现在可以用以下语言编写 Workers: - JavaScript 和 TypeScript:最成熟、使用最广泛的选项。 - Python:支持日益完善,适用于各种任务。 - Wasm (WebAssembly):可以将 Rust、C++、Go 等语言编译为在 Workers 环境中运行的二进制格式,为性能关键型应用打开了新天地。 ## 核心能力与使用场景 Cloudflare Workers 能拦截并修改任何 HTTP 请求和响应,让开发者在边缘拥有细粒度的控制。以下是你提到的几种常见用途: ### 1. 返回一段数据 这是最基础的用例之一。Worker 可以直接在边缘返回 HTML、JSON、纯文本等任意格式的数据,非常适合创建简单 API、提供配置文件,甚至渲染完整网页。 示例:返回 JSON 响应 ```js addEventListener('fetch', event => { const data = { message: 'Hello from the edge!', timestamp: new Date().toISOString() }; const json = JSON.stringify(data, null, 2); event.respondWith( new Response(json, { headers: { 'content-type': 'application/json;charset=UTF-8', }, }) ); }); ``` ### 2. 执行重定向 Worker 可以基于地理位置、设备类型或 A/B 测试组等多种条件动态重定向用户,比在 Web 服务器上配置静态重定向规则更灵活。 示例:基于地理位置的重定向 ```js addEventListener('fetch', event => { const { cf } = event.request; const country = cf.country; let url = 'https://example.com/global'; if (country === 'US') { url = 'https://example.com/us'; } else if (country === 'GB') { url = 'https://example.com/gb'; } event.respondWith(Response.redirect(url)); }); ``` ### 3. 过滤请求 Worker 可以充当“守门人”,检查传入请求,在到达源服务器之前决定是允许、阻止还是修改它们。这对于安全、机器人管理和访问控制都十分重要。 示例:阻止来自特定国家的请求 ```js addEventListener('fetch', event => { const { cf } = event.request; const country = cf.country; if (country === 'XX') { // 将 XX 替换为要阻止的国家代码 event.respondWith(new Response('访问被拒绝', { status: 403 })); } else { event.respondWith(fetch(event.request)); } }); ``` ### 4. 充当代理 Worker 的真正强大之处在于它可以作为反向代理,根据请求路径、头信息或自定义逻辑将请求转发到不同的源。这使得在同一域名下无缝整合多种后端服务和 API 成为可能。 示例:根据路径将请求代理到不同服务 ```js addEventListener('fetch', event => { const url = new URL(event.request.url); if (url.pathname.startsWith('/api/')) { // 转发到 API 服务 event.respondWith(fetch('https://api.example.com' + url.pathname, event.request)); } else if (url.pathname.startsWith('/images/')) { // 转发到图片存储服务 event.respondWith(fetch('https://images.example.com' + url.pathname, event.request)); } else { // 转发到主站点 event.respondWith(fetch('https://www.example.com' + url.pathname, event.request)); } }); ``` ### 5. 安全地实现内网穿透 虽然 Worker 本身并不直接“穿透”内网,但它是安全公开内部服务的关键组件——这主要通过与 Cloudflare Tunnel 集成来实现。 做法如下:在私有网络中的服务器上运行 `cloudflared` 守护进程,该进程与 Cloudflare 网络建立一个仅出站的安全隧道。然后,Worker 可以配置为将公共请求通过此隧道代理到内部服务,而无需在防火墙上打开任何端口。结合 Workers VPC,这种方案可扩展到 Cloudflare 网络与你云端基础设施之间的私有网络通信。 ### 6. 缓存处理 Cloudflare Workers 提供了对缓存行为的精细控制。你可以编程式地决定哪些内容被缓存、缓存多长时间以及在何种条件下覆盖默认规则,从而实现复杂的缓存策略,大幅提升性能并降低源站负载。 示例:为响应设置特定缓存时长 ```js addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)); }); async function handleRequest(request) { const cache = caches.default; let response = await cache.match(request); if (!response) { // 缓存中不存在,则从源站获取 response = await fetch(request); // 创建带缓存头的新 Response response = new Response(response.body, response); response.headers.set('Cache-Control', 'public, max-age=3600'); // 缓存 1 小时 // 存入缓存 event.waitUntil(cache.put(request, response.clone())); } return response; } ``` --- 总而言之,你的评估非常精辟。Cloudflare Workers 为网络边缘的多种任务提供了灵活且强大的平台。从简单的数据响应到复杂的代理逻辑,再到私有资源的安全连接,其可能性确实十分广阔。正是这种在边缘拦截并以编程方式处理任意请求和响应的能力,让 Workers 真正能够“代理”并重塑互联网流量的流向。
配图 (可多选)
选择新图片文件或拖拽到此处
当前图片:
3e347e00-26b7-4203-94cd-4b5b3334f07d.jpeg
标签
更新文章
删除文章