如何利用Vercel免费CDN加速网站国内访问速度?

Vercel是一个站点托管平台,提供CDN加速,同类的平台有Netlify 和 Github Pages,相比之下,Vercel国内的访问速度更快.

以下是官方介绍:
Vercel is the optimal workflow for frontend teams.
All-in-one: Static and Jamstack deployment, Serverless Functions, and Global CDN.

Vercel CDN是定制版的Amazon Global Accelerator,路由与官方的略有差异;至于AGA的网络性能不必多言,AWS找电信买了很高级的163优化,速度比较快,国内访问基本分配到香港节点。所以用它来加速源站在欧美的网站国内访问,比Cloudflare免费CDN快多了。

免费用户拥有每月100G的流量,这个100G的话,虽然网页上号称无限,实际上合理使用政策里写的是100G,构建时间是100小时。

Vercel可以托管静态网站,而且它还支持路由重写功能,和Cloudflare Workers的Serverless功能相同,支持绑定域名。所以我们可以用它来实现反代,也就是类似于CDN的功能。

1.注册Vercel

https://vercel.com ,如果有Github账号,直接用其登陆即可。

注册Vercel

2. 安装Nodejs环境

第一步,去 nodejs 官网 https://nodejs.org 看最新的版本号

安装Nodejs环境

也就是说此时此刻,15.6.0 是最新的版本,不过你求稳的话建议选 14.15.4 的LTS版。

第二步,添加源后安装
重点来了,nodejs 的每个大版本号都有相对应的源,比如这里的 14.x.x版本的源是https://deb.nodesource.com/setup_14.x。

所以在终端执行:
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -

稍等片刻,源已经添加完毕,再执行:
sudo apt-get install -y nodejs

nodejs 安装完成
等待安装完成:

nodejs 安装完成

最后验证一下,执行:nodejs -v 即可出现刚才安装的版本号 V14.15.4

nodejs 安装的版本号 V14.15.4

3.安装Vercel

在你的VPS上面,安装并登陆Vercel的Shell程序:

登陆Vercel的Shell程序
登陆Vercel的Shell程序

#安装Vercel-CLInpm i -g vercel#登陆账户vercel login

登陆账户这里会让你输入你的账户邮箱(如果你是使用Github登录的Vercel,那就输入绑定Github的邮箱),

vercel 登陆账户

随后会给你发送一封邮件,点击邮件中的VERIFY或链接登陆即可:

vercel VERIFY

VERIFY

终端中会提示登录完成。

vercel 登录完成

4.新建项目

因为Vercel是一个无服务器函数的平台,因此可以像Heroku一样很简单地建立一个转发项目;整个过程如下:

首先创建反代配置文件

vercel新建项目

#新建并进入一个新文件夹,这里我演示的文件是bawodu 您可以根据您的需要命名mkdir bawodu && cd bawodu#建立配置文件,我们文件名是jiemahao.comvim bawodu.json#配置文件内容, 我是 jiemahao.com ,您改成您要反代的网站链接{"version": 2,"routes": [{"src": "/(.*)","dest": "https://jiemahao.com/$1"}]}

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

5.部署项目
在终端执行以下代码, bawodu.json改成您的配置文件名。

vercel -A bawodu.json --prod

按照提示输入回车,如下图

vercel 部署项目

默认的是像我这样 bawodu-two.vercel.app 域名,可以绑定自定义域名。

6. 绑定域名

去Vercel官网,依次进入刚设置的项目,依次选择Settings和Domains,在框里填入你自己的域名然后点击Add添加。然后你将你的域名A记录改到它提示的IP,解析过去即可。

vercel绑定域名

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

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

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

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

7.结语

根据我自己的体验Vercel CDN 给的反代地址是香港,速度不错。对于服务器在境外的网站,加速效果还是很明显的。每月免费100G流量对小网站也足够用。此外,Vercel 也可以缓存10M以内的文件,作为图床使用也不错。

原文链接:https://jiemahao.com/vercel-cdn/,转载请注明出处。
0
显示验证码