【CDN?】利用Vercel AGA网络加速网站国内访问

发布于 / 日常杂谈 / 26 条评论

Vercel之前叫ZEIT,前几天@CLAM跟我提到这个的时候我一头雾水,瞅了一眼有点眼熟还以为是类似Github Pages的静态页面托管那种……直到提到ZEIT我才想起来这不就是之前用过的那个now.sh嘛。

以前Zeti是使用的谷歌云的边缘网络,现在是定制版的Amazon Global Accelerator,路由与官方的略有差异(毕竟自己的IP拨上去的);至于AGA的网络性能不必多言,AWS找电信买了很高级的163优化,速度不用担心。

所以,用它来加速源站在欧美的网站国内访问,比CF是好的多的,就简单写写我操作的过程吧。

题图来源微博@月圆_难得清狂,本站仅做引用,如果喜欢请务必关注画师太太啊≧ ﹏ ≦!


一、安装npm

如果是搞Node.js开发的大佬,这一步就不必多讲了,自己想怎么装就怎么装(´。_。`);如果你第一次听说这玩意或者在用宝塔,那直接在插件里装PM2管理器即可。


二、安装Vercel

首先去Vercel注册个账号,我是使用GitHub直接登陆的:

网站链接:https://vercel.com/login

然后回到你的VPS上面,安装并登陆Vercel的Shell程序:

登陆账户这里会让你输入你的账户邮箱,随后会给你发送一封邮件,点击邮件中的VERIFY或链接登陆即可:


三、新建项目

因为Vercel是一个无服务器函数的平台,因此可以像Heroku一样很简单地建立一个转发项目;整个过程参考的是当时loc里的@hoofs大佬的帖子,在此表示感谢。

配置文件的内容要修改两处,一处是YourProjectName,自己随便拟定一个,另一处是https://web.sample,改成你要反代的网站链接。

注意这里这个反代的链接在国外Vercel的边缘节点必须能够访问,也就是你要绑定的你自己的域名与反代的域名是要不一致的,至于其他关于WP的方案在下文绑定域名再讲。

配置好之后就可以执行上面的指令把配置文件推送到项目了,所有的选项保持默认即可。最后会给你一个平台的测试域名,你可以通过这个域名测试你的反代是否成功。


四、绑定域名

去Vercel官网,依次进入刚设置的项目,依次选择SettingsDomains,在框里填入你自己的域名然后点击Add添加。当DNS解析记录不正确的时候他会提示你将你的域名CNAME到cname.vercel-dns.com,解析过去即可。

自己绑定域名有一个致命的缺点,免费版的服务不支持自行上传SSL证书,它是解析后通过acme路径验证自动颁发Let's Encrypt证书,所以你绑定在Vercel上的域名必须在访问路径中经过他,简单理解就是你海外也要解析到他的CNAME或以其作为源站。

此外就是它作为一个基于无服务器函数的中间层的反代,没有任何CDN的缓存特性,所以你也可以在Vercel后面套上一层CDN用于减轻源站分发压力。

我这里建议是准备一个二级域名,比如我反代的就是now.moelty.cn,在源站的hostname上绑定上这个域名,这样就可以通过中间层的转发间接以主域名访问,并且不会影响到WP页面中的链接设置,这个方案使用动静分离CDN的站长应该很熟悉。

这个中间域名你就可以自由选择CDN,但是建议通过Page Rules或其安全设置把安全级别设置为“本质上为关”,以免Vercel用于访问源站的IP被CDN视为异常而屏蔽。


五、结语

我部署好的一个测试网址(荒废已久凑合看吧):

https://blog.moelty.cn

很感谢Zeit这样的项目提供免费的资源供大家使用,以前Zeit的时代月流量限制是20G,现在是每月100G,足够绝大多数的网站访问需求了。

如果滥用的话也可能会因为违反Tos被封禁账户,希望大家且用且珍惜(。・ω・。)ノ♡


*转载请注明出处,建议合理使用免费资源

转载原创文章请注明,转载自: Luminous' Home » 【CDN?】利用Vercel AGA网络加速网站国内访问

  1. 这个vercel的原理是路由,就是把json前面的路径指向到后面的目标!!

  2. 有免费的ssl不挺好的吗?

  3. 我vercal托管后,部分div被自动注释了,插件无法显示

  4. 你好,这样:访客ip—Vercel—cloudflare—源站
    cloudflare如何获得真实ip?
    有些防火墙规则是需要cloudflare获得访客真实ip的。

    1. @qq 这样的话获取不了
  5. 你好,部署已经变了。现在已经不支持单文件部署了,需要以目录部署。我想在你的文章上的基础上进行一些修改,发表在我的blog上,请同意我的请求,谢谢了!

    1. @城南 可以呀,到时候欢迎分享一下~ 这篇文章也很早了,现在Vercel的网络已经大不如前了,本身价值也没有文中写的那么理想了,你可以适当修改下。
  6. 直接就看不懂。。。。从Vercel注册个账号之后,就不知道干嘛了

  7. 貌似这篇文章被人盗了。
    www.***.cn/xlbk/3877.html

    1. @CMOFen 跟采集站也没啥道理可以讲,随他去吧~
  8. 那可以给他自己部署的页面加速吗?用Vercel弄了个单页面,总觉得访问不快……

    1. @小学生 他自己部署的页面就是通过AGA前端分发的,慢可能是因为最近AGA有点炸,搞事情的挺多的……
  9. 有没有办法用vercel重写host,因为以上会有个问题,第一次打开是反代的,第二次打开就变成了vercel连接的域名了

    1. @952997514 不太清楚,建议网站使用绝对目录,不使用相对目录就不会出现这样的问题
  10. Vercel其实可以缓存小于10MB的文件的 可以用Cache-Control对vercel的缓存规则修改 详细信息可以查看[Vercel Docs](https://vercel.com/docs/edge-network/caching) (逃

    1. @real186 是的,感谢补充
    2. @real186 试了一下仿佛作为反代的时候缓存始终无法命中?https://i.imgur.com/FqH6DnA.jpg
  11. 安装完毕后直接执行vercel login显示
    [root@VM-0-13-centos ~]# vercel login
    -bash: vercel: command not found

    1. @或许 教程不要跳跃着看
      1. @Luminous 已经安装nodejs450 #安装Vercel-CLI npm i -g vercel 都执行了的
        1. @或许 执行了≠安装成功,脱离log说执行了没什么意义,你连vercel的cli都没装好谈何后面的操作
          1. @Luminous sorry,这方面我是个门外汉。
        2. @或许 运行如图pan.vitc.cn/api/v3/file/get/173/QQ%E6%88%AA%E5%9B%BE20201225193127.png?sign=XYUYd7K4KX3MeoFCNn2O3mZ2ju4WJLIFgtJ_4ngbrgY%3D%3A0
          1. @或许 啊……这个确实没遇到过,你还是去相关的技术论坛问吧,或者检查下Node.js安装是否正确
          2. @或许 你应该换系统了(centos本来就有点fufu的
  12. 前排