Skip to main content
德胜云
  万速智能9 > 域名

干货分享「3分钟教你打造自己的短域名服务!」短域名生成工具短域名服务器

2024-03-21 23:02:31 浏览:

干货分享「3分钟教你打造自己的短域名服务!」短域名生成工具短域名服务器

相信很多人都用过短域名服务,但也肯定遇到过不少的问题。例如:

今天我们就来自己打造一个在线短域名服务!

分析

通过调研分析市面上的大部分短网址服务,大致可判断出服务需要的一些接口:

输入页面,服务提供的网页

生成接口,通过传入长url参数,返回计算后的短url地址

跳转接口,真正提供短域名的入口。通过生成的短url跳转到对应的长url

上面就是一个短域名服务应该实际提供的东西了。当然,最后的最后,真正重要的一点,你要有一个短域名才行阿

设计

这里使用了go语言进行开发,主要是看中了它的跨平台编译能力,以及最后只需要分发一个二进制程序的特点。

然后web框架选择了gin。其实go自带的net/http已经可以做很多事情了,使用框架基本就是为了编写方便(当然还有我懒:))。

对于接口,其实主要只有生成和跳转两个。为了不再这里费功夫讨论,照搬了百度短网址服务 http://dwz.cn/ 提供的接口来设计。所以,最后我们的服务要提供的几个endpoint就长下面这样:

tolnk.cn/create.php,param:url,这里我设计传入的url是base64编码后的文件,免得自己再去进行url编码了。

token.cn/XXX,真正提供短链接的跳转地址。XXX是通过长网址生成的短网址crc结果的62进制字符串

tolnk.cn,根目录提供一个简单的html页面。光有接口,总不能让用户都去用postman之类的程序调用吧

这里主要说一下create接口的实现,我们的流程是这样的:接收传入的url参数,通过base64解码得到原始url,通过我们的计算函数得出短网址的62进制编码,然后构造返回值返回给用户。我们得到下面的流程图:

当然中间还要判断url是否合法阿,以及数据库中是否已经存在此url等等一系列判断,这里就不明说了,有兴趣可以看源码。如此我们的main函数就可以写成下面这样:

编译通过后,可以通过搭建nginx代理重写url来达到我们目的!

我们的重写规则是这样的:

跳转这里很简单,图方便就一个301了事。写成代码就下面这样:

需要代码的可以私信小编获取。

干货分享「3分钟教你打造自己的短域名服务!」短域名生成工具短域名服务器

  • 学到了吗「什么是域名?域名和ip地址关系盘点」域名和ip地址
  • 硬核推荐「域名解析服务器是什么?什么是域名解析」域名的解析工
  • 学到了「ASA方舟生存飞升计划1.5重置版服务器搭建教程」方
  • 一看就会「ASA方舟生存飞升计划1.5重置版服务器搭建教程」
  • 满满干货「什么是域名?域名和ip地址关系盘点」域名和ip地址