零成本部署一个自定义域名的短链接服务

零成本部署一个自定义域名的短链接服务

xuliyaoPro 过期程序员

你是否曾经历过这样的尴尬时刻?
精心准备的营销文案,却被一长串杂乱无章的URL破坏了美感;会议演示中,复杂的链接让听众手忙脚乱地输入错误;社交媒体上,字符限制让你不得不在宝贵的内容和完整链接之间艰难取舍……

链接冗长已不仅仅是美观问题,更是实实在在的效率杀手。研究表明,超过40个字符的URL会让用户产生本能的抗拒感,点击率直接下降23%。更不用说那些包含敏感参数、暴露业务逻辑的原始链接可能带来的安全隐患。

但问题远不止于此:

  • 品牌形象受损 - 混乱的链接让专业度大打折扣

  • 数据追踪困难 - 无法准确分析流量来源和用户行为

  • 移动端体验差 - 小屏幕上输入长链接简直是噩梦

  • 跨平台兼容性问题 - 不同应用对链接的解析和处理方式各异

是时候彻底改变这种现状了。

短链接服务并非新鲜概念,但传统方案往往面临部署复杂、成本高昂、性能瓶颈等新问题。直到现在——Cloudflare Workers的出现,让每个团队都能以零基础设施成本、分钟级部署、全球毫秒级响应的方式,拥有属于自己的企业级短链接服务。

在本文中,你将发现:

  • 🔗 如何用零成本,搭建媲美商业产品的短链系统

  • 🚀 无需开发经验,跟着点点操作一遍,无开发经验者也能轻松掌控

  • 🌍 全球分布式网络,确保任何地方的用户都享受极致速度

  • 📊 完整的数据洞察,让每次点击都产生价值

这不仅仅是一篇技术教程,更是一份数字效率升级指南。无论你是个人开发者、创业团队还是企业技术负责人,接下来的内容都将为你打开一扇新的大门——在那里,每个链接都是简洁、安全且智能的。


什么是Sink?

Sink 是一款完全运行在 Cloudflare 边缘基础设施上的无服务器 URL 缩短服务。它提供了一个用于链接管理、实时分析和 URL 重定向的 Web 控制面板,无需传统的服务器基础设施或数据库系统。

主要特点:

  • Cloudflare原生:所有功能均利用Cloudflare Workers、KV存储、分析引擎和Workers AI。
  • 无服务器架构:无需管理服务器、虚拟机或容器。
  • 边缘部署:全球分布,延迟极低
  • 自我托管:fork 并部署到您自己的 Cloudflare 帐户

适用人群:

  • 需要带有分析功能的个人网址缩短服务的用户
  • 需要链接跟踪和管理但又不想被供应商锁定的团队
  • 希望自行托管和自定义 URL 缩短器的开发者
  • 利用 Cloudflare 基础设施的组织

系统架构:

下图展示了主要子系统之间的交互方式,并参考了实际文件路径和 Cloudflare 绑定:

部署首页截图

创建链接截图

数据分析截图


一、上手操作步骤

今天用 Cloudflare Workers + 开源项目 Sink 为例,全程浏览器点点鼠标即可完成。

① 准备材料

  • 自定义域名(已备案或未备案均可)
  • GitHub 账号(用来 fork 源码)
  • Cloudflare 账号(用来部署管理)

② Fork克隆代码仓库

  1. 打开GitHub Sink代码仓库,点击Fork
  2. 设置仓库名(Repository name=Sink),点击Create Fork创建自己的代码仓库

③ 创建KV 命名空间

  1. 创建KV 命名空间,并复制命名空间 ID。
    “存储和数据库” → “Workers KV” → “Create Instance”
  2. 命名空间名称SinkKV

④ 配置 Wrangler

  1. 复制命名空间 ID4720********************2a4f22d,更新至你代码库文件wrangler.jsonc,点击Commit changes

    关键配置字段:
Field Value 目的
name "sink" Cloudflare 中的 Worker 名称
main "dist/server/index.mjs" 构建后的入口点
assets.binding "ASSETS" 静态文件的绑定名称
assets.directory "dist/public" 包含静态资源的目录
compatibility_date "2025-05-08" 工作 API 兼容版本
compatibility_flags ["nodejs_compat"] 启用 Node.js 兼容层
keep_vars true 保留环境变量
upload_source_maps true 上传源映射以进行调试

⑤ 部署到 Cloudflare Workers

  1. 登录 CloudflareWorkers 和 Pages → 点击创建应用程序
  2. 选择”Workers” → “导入存储库”,点击开始使用
  3. 选择”Github” → “选择克隆仓库Sink“,点击Install & Anthorize
  4. 打开Workers和Pages设置应用程序,配置项目构建设置,点击创建和部署
    • 项目名称sink
    • 构建命令pnpm run buildnpm run build
    • 部署命令npx wrangler deploy
  5. 保存并部署项目,构建会失败没关系,继续后续步骤

⑥ 配置环境变量

  1. 转到“设置” → “变量和密钥” → “添加”,并配置必须环境变量
    • NUXT_SITE_TOKEN=12345678
      必须至少包含8 个字符。用于登录后台的访问页面的权限。
    • NUXT_CF_ACCOUNT_ID = d0334********************51c66f
      查找Cloudflare账户 ID,在账户行的末尾选择菜单按钮。
    • NUXT_CF_API_TOKEN = sl3nq0-75we*************************INcpd
      创建Cloudflare API 令牌添加权限:帐户→帐户分析→读取

⑦ 启用分析引擎

  1. 选择Analytics Engine,启用点击创建数据集
    • Dataset Name=sink
    • Dataset Binding=ANALYTICS

⑧ 重新部署

  1. 选择”部署”,点击重试构建
  2. 构建中,大概等待1~2分钟,构建日志都是✅,即完成部署。
  3. 选择概述,点击访问,即可打开项目首页,访问不了就要用到自定义域名了
    导航至https://your-worker.workers.dev/dashboard并使用您的帐户密钥NUXT_SITE_TOKEN进行身份验证登录。

⑨ 绑定自定义域名

  1. “设置” → “域和路由” → “自定义域”,填写域=surl.chinapmcc.com,点击添加域,会自动生成DNS CNAME 记录。
    也可手动添加DNS记录
    1
    2
    类型=CNAME
    surl → sink.chinapmcc.workers.dev
  2. 此时刷新你的域名sURL.chinapmcc.com,就能打开 Sink 的 Web UI,可以新增、管理短链了。

二、进阶玩法

自定义配置

app/app.config.ts

可以通过配置文件来修改页面的信息,提交后会自动部署页面,修改参考如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
export default defineAppConfig({
title: 'sURL',
email: '[email protected]',
github: 'https://github.com/liyaoxu/Sink',
twitter: 'https://surl.chinapmcc.com',
telegram: 'https://t.me/chinapmcc',
mastodon: 'https://surl.chinapmcc.com',
blog: 'https://www.chinapmcc.com',
description: '一个简单 / 快速 / 安全的短链接生成器,带统计功能,完全运行在 Cloudflare 平台上。',
image: 'https://chinapmcc.com/banner.png',
previewTTL: 300, // 5 minutes
slugRegex: /^[a-z0-9]+(?:-[a-z0-9]+)*$/i,
reserveSlug: [
'dashboard',
],
})

app/components/layouts/Footer.vue
app/components/home/Twitter.vue
app/components/home/Cta.vue
i18n/locales/zh-CN.json

参考帮助文档

✨ askDeepWiki

https://deepwiki.com/ccbikai/Sink

⚡ short link(sURL) Demo

https://surl.chinapmcc.com/

⚒️ Configuration

Configuration Docs

🔌 API

API Docs

🧰 Similar open-source software

https://github.com/x-dr/short
https://github.com/Alessandro-Pang/short-link


三、常见问题

  1. 域名未备案?
    解析到 Pages 的 CNAME 走境外 Anycast,国内访问无阻断,无需备案。
  2. 想换后端语言?
    Pages 支持任何静态输出,可把 Sink 的 Cloudflare Functions 改成 Next.js、Hexo、Hugo 都行。
  3. 担心数据丢?
    KV 每日自动快照,可在后台一键导出;也可定期 wrangler kv key get --all 备份到本地。
  4. 使用无限量免费的?
    • Pages 免费档:每月 500 build 分钟、100 GB 流量,个人足够
    • KV 免费档:每天 1000 写/10 万次读,短链场景基本用不完
    • 超出后按官方标价付费,也可随时迁到自建数据库

四、结语

用 Cloudflare Workers Pages + KV,不写一行后端就把“域名、重定向、统计、SSL”全托管,真正做到零服务器、零成本、全球加速
如果你只想快速拥有一个可自定义后缀、带访问报表的短链服务,上面的方案足够用;后期业务扩大,再考虑迁到自建 Postgres 也不迟。现在就打开浏览器,给你的品牌域名加上 /abc 的魔力吧!

  • 标题: 零成本部署一个自定义域名的短链接服务
  • 作者: xuliyaoPro
  • 创建于 : 2025-11-21 00:00:00
  • 更新于 : 2025-11-21 00:00:00
  • 链接: https://chinapmcc.com/2025/11/21/应用案例/零成本部署一个自定义域名的短链接服务/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论