漫游挨踢短网址维护完成!

之前给大家介绍过挨踢君写的短网址服务。(见附件更新记录)

由于政策规定,大部分后缀的域名都无法在国内备案,“manyou.it”也就无法在国内使用了。这导致部分业务代码无法使用。

本来更加短小的manyou.it域名瞬间黯然失色。

转机:无服务器计算

CloudFlare Workers 是一项不错的无服务器计算服务。通过本次案例可以挨踢君带大家体验无服务器计算。

  • 首先,将“manyou.it”的DNS服务托管到CloudFlare
  • 在Workers 里面添加反向代理业务代码
const base = "https://manyouit.com/"

async function handleRequest(request) {
  const url = new URL(request.url)
  const { pathname, search, hash } = url

  const destinationURL = base + pathname + search + hash
  let response = await fetch(destinationURL, request)
  return response
}

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

通过上面两步操作,就能实现manyou.it对manyouit.com 的反向代理。

点击展开👉什么是反向代理?

所谓反向代理,就是给服务器做代理,替服务器接管用户发来的业务请求;
与之区别的是正向代理,正向代理,代理用户向网站发出业务请求。

看来,无服务器计算就是一种服务,但这种服务不需要你维护专门的服务器。你只需要给服务商提供代码就行。

现在,我们实现了manyou.it 对manyouit.com 的反向代理。但是由于短网址服务使用http 的301 状态码实现网页跳转,而这种跳转无法被反向代理代码所支持。

在Workers 里面实现跳转

由于挨踢君的短网址结构容易分析,比如 https://manyouit.com/s/Al(或短一点:manyou.it/s/Al)

url 中都包含/s,因此把代码改成:

const base = "https://manyouit.com/"

async function handleRequest(request) {
  const url = new URL(request.url)
  const { pathname, search, hash } = url

  if(pathname.toString().charAt(1)=="s" && pathname.toString().charAt(2)=="/"){
      return Response.redirect("https://manyouit.com"+pathname, 301)
    
  }

  const destinationURL = base + pathname + search + hash
  let response = await fetch(destinationURL, request)
  return response
}

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

就能恢复manyou.it 的短网址功能!

总结:大家敞开用吧!


附件: 上次更新记录

一个新生的短网址服务!

---
title: 一个新生的短网址服务!
date: 2020-09-09
draft: false
description: 其他短网址服务要么“不短”,要么寿命“太短”,要么被微信“封杀”,看看我是怎么做的!
tags: [想法,  短网址, 短链接, software, 优秀软件]
# aliases: [/sanlian/Chrome]
# type: post
---

大智若愚、才大器粗
我们对“大”的追求是孜孜不倦的
可是你听说过“短小精悍”吗?

“短小”如何胜出?

同样的电影,使用h265 技术压缩的体积
往往会比上一代技术小一半

2020年新版的h266算法甚至能更进一步:
在h265的基础上再节约30~50%的体积
也就是说,一部原来40G的蓝光电影
在新的标准下可以压缩到只剩10个G!(理想情况)

最重要的是,在体积变小的同时还能做到不损失画质!

启示:

在存储和传输过程中,我们希望它尽可能小;
在使用过程中,我们又希望它尽可能无损
大,或许笨重;小,反而精悍!
长,不代表好;短,也可以赢!


为了能得到大家的三连
挨踢君喜欢把一些有趣、有用的资源链接分享给大家
但往往会遇到链接太长的问题

于是,我想将这些长网址“变短”
然而,尽管市面上已经存在了相当多的短网址服务
但我发现,这些短网址或多或少存在一些问题:

被滥用

很多短网址指向了许多广告、甚至是色情非法网站
因此,它们被微信屏蔽
这导致短网址的传播性大打折扣

短网址不短

这些短网址因为被大量使用
已经不算短了,它们的后缀往往有8位之多

植入广告

部分短网址
甚至会在到达目标页面之前
给用户闪现广告!看完广告再到目标页面
这就更难忍

挨踢君如何克服这些缺点

针对短网址的这些问题
我进行了充分考虑
这里给出我的解决思路

“就差一个程序员了”

▲“就差一个程序员了”

微信为了用户体验
屏蔽了一些非法短网址,这当然无可厚非
然而从另一个层面看,这一屏蔽也误杀了许多正常用户

为了防止误杀,我们可以把域名限定在一个白名单里面:
比如,我选择了中国排名前100的网站
同时,为了最大程度地防止微信屏蔽
我还需要移除了电商类网站

另外,为了防止特殊癖好的人滥用该服务
比如写一个DDOS脚本,疯狂调用该接口
我于是将短网址服务设置了使用门槛
具体做法等会我会告诉大家

域名白名单 + 使用门槛
这样的设定,可以保证短网址服务经久不衰
另外,我的manyouit域名续费到了上限
也就是2029年
如果用它来做短网址,应该能高枕无忧吧

虽然说起来,核心思路就是白名单+使用门槛
但是这个服务我写了差不1多个月
【泪目】

试试挨踢君的短网址服务?

使用

使用挨踢君的短网址服务,最简单的方法
就是把长网址发到漫游挨踢的公众号

复原

当然,如果你想还原成原来的网址
只要发送短网址即可

另类用法

实际上
短网址本质上就是一个字符串到另一个字符串的映射
所以当然,也可以在这里种下一个秘密

比如,你可以把要记住的东西伪装成一个网址:
my.secret/我的wifi密码是:mywifipw
然后我会返回一个短网址
下一次,当你想复原的时候,你把短网址发给我就行
【演示】

当然,也可以把一些悄悄话“加密”成短网址,大家看:
love.you/我对你的爱有如滔滔江水连绵不绝,又有如黄河泛滥一发而不可收拾。

然后你把这个加密的短链接发给TA
并提示TA把短链接复原
就能看到你加密的信息了!

my.secret、love.you
这两个域名是未经注册的
我特地加到了白名单里面
算是挨踢君添加的彩蛋吧!

当然,如果你想在白名单里面添加其他域名
记得私信告诉我

最后

因为那些人可能会突然
终止合作、停止服务、断绝供应

小到一个个体,大到一个国家
有些东西还是掌握在咱们自己手里比较好

如果你觉得我讲的还不错,请随意三连
你三连的样子真好看!

YES!

拟过的标题:
长,不代表好;短,也可以赢!
1个月后:新生的短网址服务!
太长并不好,还是缩短吧。
短,居然有这么多的好处!
一个新生的短网址服务!

2022-09-07 短网址  漫游挨踢  manyou.it  manyouit.com 短链接 software 优秀软件

相关文章