惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
博客园 - 三生石上(FineUI控件)
D
DataBreaches.Net
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
GbyAI
GbyAI
P
Proofpoint News Feed
Microsoft Security Blog
Microsoft Security Blog
月光博客
月光博客
I
InfoQ
V
Visual Studio Blog
罗磊的独立博客
Engineering at Meta
Engineering at Meta
Vercel News
Vercel News
Jina AI
Jina AI
L
LangChain Blog
Apple Machine Learning Research
Apple Machine Learning Research
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog
The Cloudflare Blog
小众软件
小众软件
雷峰网
雷峰网
V
V2EX
人人都是产品经理
人人都是产品经理
Stack Overflow Blog
Stack Overflow Blog

吖远zzyの博客

把吃灰五年的旧笔记本改成了NAS,翻车了但没完全翻 | 吖远zzyの博客 一个简单的脚本,治好了我的下载文件夹焦虑症 | 吖远zzyの博客 记录一下豆包视频去水印的研究过程,以及fallback_api加密数据qAAB开头数据的解密。 | 吖远zzyの博客 解决华为开发者工具 DevEco Studio 登录跳转 localhost:10101 端口被阻止问题 | 吖远zzyの博客 微信小程序个人资质审核血泪史:踩坑,从反复被拒到神奇过审 | 吖远zzyの博客 如何实现公众号自动回复或做一个短视频无水印解析机器人? | 吖远zzyの博客 以后在手机上用 Termux 和 GitHub Actions 更新 Hexo 博客 | 吖远zzyの博客 必备!这款万能小程序能给抖音/豆包视频图集去除水印、还有有趣的测反应、玩成语模拟工具。 自制的一些免费API接口第二弹(获取QQ昵称、头像、抖音/豆包视频去水印等...) 告别原生导航栏:微信小程序自定义导航栏完美适配方案 在安卓手机上运行OpenClaw?当然可以,用Termux折腾OpenClaw安装QQ机器人的踩坑记录... | 吖远zzyの博客 个人开发工具之抖音直播录制工具:一款功能强大的Android直播录制应用 UniApp中Canvas绘图的易错点与踩坑指南 QQ频道机器人与UniApp开发:常见踩坑点与解决方案 UniApp中Canvas绘图不显示的常见问题与解决方案 Hexo博客实现随机文章功能的完整教程 QQ频道机器人Android客户端使用指南 | 吖远zzyの博客 安卓版QQ频道机器人APP客户端插件开发指南 | 吖远zzyの博客 2024年AI编程助手深度评测:哪款最适合你? uni-app地图定位踩坑记:地图功能和定位的那些坑 uni-app文件上传踩坑记:图片处理和上传全攻略 uni-app表单验证踩坑记:这些坑我替你踩过了 uni-app开发踩坑记录:新手必看的常见问题与解决方案 uni-app安全防护指南:构建可靠的跨端应用 uni-app性能优化指南:从加载到渲染的全方位提升 uni-app动画效果实战:从基础到高级的动画实现指南 uni-app组件开发实战:从基础到进阶的最佳实践 uni-app网络请求与缓存策略:构建高效的数据层 uni-app状态管理进阶:Vuex最佳实践与性能优化 uni-app路由与页面跳转:最佳实践与踩坑指南
利用 Cloudflare Workers 免费搭建自己的短链服务 | 吖远zzy...
吖远zzy · 2026-08-05 · via 吖远zzyの博客
  1. 1. 前言
  2. 2. 为什么选择 Cloudflare Workers?
  3. 3. 准备工作
  4. 4. 第一步:创建 Workers 服务
  5. 5. 第二步:写入核心代码

利用 Cloudflare Workers 免费搭建自己的短链服务 0 次阅读

前言

不知道大家有没有遇到过这种情况:辛辛苦苦分享出去的链接,没过多久就变成了“404 Not Found”。第三方短链服务跑路、限流、删链,早就不是什么新鲜事了。

之前我在博客里分享过自建的 API 服务 api.hzv5.cn,集成了 27 种实用接口。今天继续这个“自建工具箱”系列,跟大家聊聊如何用 Cloudflare Workers 免费搭建一个完全属于自己的短链服务。

为什么选择 Cloudflare Workers?

市面上短链服务不少,但要么收费、要么有广告、要么随时可能关停。自建的话,传统方案需要买服务器、搭数据库、配置环境,门槛确实不低。

而 Cloudflare Workers 的优势非常明显:

  • 完全免费:每天 10 万次请求的免费额度,个人使用绰绰有余
  • 无需服务器:基于边缘计算,部署即用
  • 自带 CDN:全球节点加速,访问速度飞快
  • 自定义域名:支持绑定自己的域名,短链完全由你掌控

准备工作

开始之前,你需要准备以下几样东西:

  1. 一个 Cloudflare 账号(免费注册即可)
  2. 一个域名(最好托管在 Cloudflare,非必须但推荐)
  3. 一点点 JavaScript 基础(复制粘贴也能搞定)

第一步:创建 Workers 服务

登录 Cloudflare 控制台,点击左侧菜单的 Workers & Pages,然后点击 创建应用程序

  1. 选择 创建 Worker
  2. 给 Worker 起个名字,比如 url-shortener
  3. 点击 部署,完成基础创建

第二步:写入核心代码

在 Worker 的编辑器中,粘贴以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// 短链映射表 —— 你可以自由增删改
const LINKS = {
'gh': 'https://github.com',
'docs': 'https://docs.hzv5.cn',
'api': 'https://api.hzv5.cn',
// 添加你自己的短链在这里
// 'short': 'https://your-long-url.com/xxx'
};

async function handleRequest(request) {
const url = new URL(request.url);
const path = url.pathname.replace('/', '');

// 根路径访问返回使用说明
if (!path) {
return new Response(
`短链服务已启动 🚀\n可用短链:${Object.keys(LINKS).join(', ')}`,
{ status: 200 }
);
}

// 查找对应的长链接
const target = LINKS[path];
if (target) {
return Response.redirect(target, 301);
}

// 未找到返回 404
return new Response('短链不存在', { status: 404 });
}

addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request));
});

代码逻辑非常简单:访问 https://你的域名/gh 时,会自动 301 跳转到 https://github.com。

第三步:绑定自定义域名(可选)

如果你想把短链服务挂在自己的域名下(比如 s.hzv5.cn),只需要:

  1. 在 Workers 页面点击 触发器 → 自定义域
  2. 输入你想用的子域名(如 s.hzv5.cn)
  3. Cloudflare 会自动完成 DNS 配置

这样你就可以用 https://s.hzv5.cn/gh 这样的链接了,比 workers.dev 的域名专业得多。

进阶玩法:接入 KV 存储

上面这种把映射写死在代码里的方式,优点是简单,缺点是每次增删改都要重新部署。如果你的短链比较多,或者想做个管理后台,可以接入 Cloudflare 的 KV 存储:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 使用 KV 存储读写短链
export default {
async fetch(request, env) {
const url = new URL(request.url);
const key = url.pathname.slice(1);

if (request.method === 'POST') {
// 新增短链
const { short, long } = await request.json();
await env.LINKS.put(short, long);
return new Response('创建成功');
}

// 跳转
const target = await env.LINKS.get(key);
return target ? Response.redirect(target, 301) : new Response('Not Found', { status: 404 });
}
}

这样你就可以通过 API 动态管理短链了,甚至还能做一个简单的管理页面。

写在最后

整套方案从注册到上线,熟练的话十分钟就能搞定。相比依赖第三方服务,自建短链的好处是数据在自己手里、域名在自己手里、随时可控。

就像我之前说的,让博客变得更有“灵气”,靠的就是这些自己动手搭建的小服务。如果你也在折腾类似的东西,欢迎交流~