10

非VIP用户下载限速,原来是这么实现的

 3 years ago
source link: https://segmentfault.com/a/1190000040606535
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

在日常工作之余,二狗子其实还是个隐藏的大触,一手素描画得出神入化,不少看过的小伙伴嗷嗷叫着求分享。为了让更多小粉丝能看到自己的作品,二狗子开发了一个提供有版权的素描稿件的下载网站。

二狗子的小网站,只要是注册用户就可以无限速下载素描稿。这原本是一件好事,但随着访问量的增多,带宽成本成为了二狗子不可承受之重。于是就有小伙伴建议做一个 VIP 服务,让 VIP 全速下载,免费用户稍微限速一点。二狗子觉得这是个很好的办法,于是打开百度找了找具体操作方式。

百度说传统的一些设置,都是在本地设置限制下载速度,如果是需要限制别人从你网站中下载的速度,则要用到 Rewrite 规则。

什么是 Rewrite 规则?

Rewrite 是一种服务器的重写技术,主要的功能就是实现 URL 的跳转,它的正则表达式是基于 Perl 语言。可基于服务器级的(httpd.conf)和目录级的(.htaccess)两种方式。

如果要想用到 Rewrite 模块,必须先安装或加载 Rewrite 模块。方法有两种:一种是编译 apache 的时候就直接安装 Rewrite 模块;另一种是编译 apache 时以 DSO 模式安装 apache,然后再利用源码和 apxs 来安装 Rewrite 模块。

上面两种实现方法,二狗子看得一头雾水,感觉分开来每个字都看得懂,连起来又仿佛天书。无奈的二狗子尝试求助万能的又拍云客服——薇薇小姐姐。

“接入又拍云 CDN 就可以直接使用 Rewrite 功能哦,而且可以直接在控制台进行操作,非常方便。”薇薇小姐姐淡定回答。

好家伙!不愧是二狗子最爱的又拍云,赶快来看看具体使用方法吧。

又拍云 Rewrite 功能概述

又拍云 Rewrite 功能主要是为了帮助用户简化内容分发业务逻辑,提升终端用户访问体验。特色是可以快速部署且配置简单,可极大降低业务实现成本。同时功能强大,涵盖了大部分互联网需求场景,包括:

  • 通过 URL 改写,可美化网站 URL,提升网站 SEO
  • 为了节省更多访问带宽,限制网站请求下载速度
  • 控制请求 URL 的结构、HTTP 头域等
  • 自定义源站错误页面,提升终端用户体验
  • 限制特定客户端的访问行为,合理进行访问控制

在使用时,又拍云也根据不同用户需求划分了两种不同的使用方式:

  • 通用模式:适用于没有开发基础,且对语法规则不熟悉的用户,该模式使用方便快捷。
  • 编程模式:适用于开发者,对相对通用模式来说,编程模式会更灵活,功能会更强大一些,适合对语法规则有深入了解的用户使用。

为了让通用模式满足更多用户的需求。根据使用场景的不同,又拍云为【通用模式】配备了 7 大功能:

  • 添加 HTTP 头部(包括请求头和响应头)
  • 删除 HTTP 头部(包括请求头和响应头)
  • 边缘重定向
  • URL 改写
  • 自定义错误页面

Rewrite 使用案例

看完了又拍云 Rewrite 功能的介绍,二狗子配置下载限速,具体要怎么做呢。薇薇小姐姐告诉二狗子,通用和编程两种模式下都可以实现,并且一步步亲手示范怎么操作。

通用模式:

编程模式:

这个规则表示,当访问的 URL 匹配到这个域名的时候就在文件加载 1k 后开始限速,限速值为:60k。

设置完成后二狗子马上测试了一下,设置就生效,立刻完成了限速。

薇薇还告诉二狗子,除了进行域名限速,也可以对指定类型的文件进行下载限速,比如:指定 zip 文件下载限速。

完成这个设置后,当访问的 URL 匹配到这个域名,并且符合这个后缀的文件,就开始限速。

符合限制文件的效果:

其他文件的效果:

当然了也可以进行 URL 改写,例如:当访问一个 URL 需要改写成在后面加上 !lalala 参数。

这两种完全不同的JPEG加载方式,你肯定见过!

短视频时代不可忽视的幕后功臣竟然是它!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK