兄弟们,不知道你们有没有遇到过这种场景:
市场部同事甩来一个链接,说“帮我们搞个短链接,原来的太长了,海报印不下”。你一看,好家伙,这URL里带了一堆参数,比老太太的裹脚布还长。用百度短网址?怕收集用户数据。自己搭一套Bitly?那得买服务器、买域名、搞数据库,预算报表写上去,老板血压直接拉满。
今天就聊聊怎么用Cloudflare的免费套餐,整一个企业级短链接服务。别听到“企业级”就紧张,其实思路特别简单——你就当是去路边摊吃碗面,但摊主用的是米其林后厨的灶台。
首先,Cloudflare Workers是啥?
打个比方,Workers就像你雇了一个跑腿小哥,他站在Cloudflare全球各地的机房门口。用户访问你的短链接,不需要大老远跑回你的服务器,跑腿小哥在离用户最近的地方直接就回了。而且这货便宜,免费版每天有10万次请求额度——对绝大多数企业内部场景,这额度够你从年初用到年终。
D1数据库又是个啥?
你可以把它理解成一个装在云端抽屉里的Excel表格。免费版有5GB存储,每天还能读写500万行。咱这个短链接服务,说白了就是一张表:哪个短码对应哪个长链接,被点了多少次,啥时候点的。
好,咱开始搭,其实就三步:
第一步:建数据库。 在Cloudflare Dashboard里点几下,创建一个D1数据库,就跟新建个文件夹一样简单。
第二步:写点代码。 你不需要是后端大神。核心逻辑就是两个函数:
- 一个负责“存”:把长链接丢进去,返回一个短的随机码(比如
abc123),存到数据库里。 - 一个负责“取”:用户访问
你的域名/abc123时,Workers去数据库查这个码,找到对应的长链接,直接跳转过去,并且顺手在Excel表格里“点统计”那一栏加个1。
第三步:绑定域名。 把你自己公司的域名解析到Cloudflare,配一下路由规则,完事。
关键来了——点击统计怎么做?
很多外部短链接服务,统计功能是要付费的。但咱自己用D1数据库,统计是免费的。每次跳转的时候,Workers在Excel表格里记一笔:今天几点几分、谁点的、从哪儿跳过来的(Referer)。这不就是最简单的埋点吗?
我给你说个实际例子:去年公司市场部搞了个线下活动,二维码印在易拉宝上,链接是长的。我给他们配了这个服务,拿了个短码挂在二维码里。活动结束后,直接跑一条SQL(结构化查询语言)查询,就能看见:
- 周一早上10点扫码量最高,因为大家在等电梯没事干;
- 手机端访问占比87%,因为大家用微信扫码;
- 投放的第三个地铁站效果最好,因为离电梯近。
你把这些数据甩给市场部,他们看你的眼神都带光的。
再聊点企业级的细节:
- 安全拦截:你可以加个简单的密码验证,或者只允许特定邮箱后缀(比如
@公司名.com)的人创建短链接。手底下的人就不会乱来。 - 防滥用:可以设个限制,一个IP每天最多创建10个短链接,防止有人拿它当免费图床用。
- 批量导入:如果你是做投放的,几十个链接要生成短码,可以直接写个脚本调API,批量搞定,效率翻倍。
有没有什么坑?
有。D1数据库是边缘分布式架构,数据同步有点延迟,但通常只有几毫秒,日常用根本感觉不到。另外,Workers免费版是用的Cloudflare公共IP(公共网络地址),如果你公司有网站防火墙,可能需要加白名单。
最后说一句,Cloudflare还有R2存储、KV存储之类的,以后要扩展成“链接带图片预览”或者“链接过期自动失效”,都不用换地方,代码里加几行就行。
我见过太多IT同行,动不动就上K8s(Kubernetes,容器编排平台)、微服务,其实一个短链接功能,真没必要整那么重。有时候,一个跑腿小哥加一个Excel表格,就够你撑起整个公司的面子了。
——
如果你后续想了解更复杂的场景,比如这个服务怎么和SSO(单点登录)打通、怎么做多租户隔离,或者想看看其他企业级零成本方案的完整代码实现,更多方案可访问 itfangan.com,里面有不少我积累的实战笔记,希望能帮上忙。