Vercel部署踩坑系列4:访问被墙
项目部署完毕,问题全部解决,网页也出来了,兴高采烈发给好友看看,结果对方说打不开,还问我又写了什么新bug。
我:???
然后我发现Vercel上部署项目后获得的访问地址xxx.vercel.app,在没有搞代理的话国内根本访问不了......虽然看到github社区有讨论过这个问题,Vercel团队也曾经试图解决这个,但很明显现在问题还是存在。
最后我又搜遍全网,有的解决方案不知道是过期了还是情况不符,照着做没有效果,又或者是太过简单无法琢磨,导致找不到思路。但是索性还是看到一篇有用的帖子,虽然中后半部分有不一样的地方,但是总算摸索出来一些经验。
帖子参考:
https://blog.csdn.net/luback/article/details/145870684
步骤一建仓库和步骤二部署都是我搞完的了,所以直接跳过,直接到步骤三买域名。
到腾讯云买了一个域名以后,开始进行步骤四解析。
原来的解析步骤详解:
问题出在这一步,帖子里面是利用Cloudflare进行解析,然后在腾讯云修改DNS服务器为cloudflare给的地址。相当于是用了 Cloudflare 的代理(橙云),让流量通过 Cloudflare 节点转发避免被墙。
其余Cloudflare注册步骤不多啰嗦,按照帖子的来就行,注册完以后核心步骤如下:
1、替换DNS服务器
复制Cloudflare提示页面 提供的 NS
benedict.ns.cloudflare.com
elisabeth.ns.cloudflare.com
在域名注册商(比如我的是腾讯云)里找到「修改DNS服务器」
不要原来的:
alive.dnspod.net
weak.dnspod.net
换上Cloudflare的。
过了几分钟以后访问Cloudflare 页面,会提示你已经生效(没生效的话还是那个提示页面要你完成这最后一步)
2、在 Cloudflare 添加 Vercel 的 DNS 记录
Vercel 不允许直接使用 A 记录(因为动态 Edge Network),必须使用 CNAME 方式接入。
| 类型 | 名称 | 内容 | Proxy |
|---|---|---|---|
| CNAME | @ | cname.vercel-dns.com(注意不是xxx.vercel.app,和原帖不一样) | Proxied |
| CNAME | www | cname.vercel-dns.com(注意不是xxx.vercel.app,和原帖不一样) | Proxied |
3、在 Vercel 添加域名
进入 Vercel:
- 打开项目
- 左侧菜单:Settings
- 选择 Domains
- 添加你购买的的域名
其它没有提到的可选但推荐的步骤:
-
开启“Always Use HTTPS”
Cloudflare → SSL/TLS → Edge Certificates → Always Use HTTPS → On
-
设置 SSL 模式为 Full
Cloudflare → SSL/TLS → Overview → Full
我实际的解析步骤:
然后我上面操作完以后发现还是没有效果,要么是Cloudflare代理的网速实在太慢,要么是还有操作步骤没有考虑到,大脑已经悲伤到无法思考原因了。但是我在搜索过程中意外得到了一个信息:上面提到的那个cname.vercel-dns.com网站是 Vercel 官方提供的用来代理的服务器!我又看到腾讯云买的域名后面也提供了解析,我思路又来了,为什么不用它的呢?
死马当活马医,说干就干。
1、上面第一步取消,恢复原来腾讯云默认的DNS服务器;
2、第二步直接在腾讯云购买的域名后面点击解析:
然后选择填写步骤二的表格内容,新手直接点那个快捷解析!把地址cname.vercel-dns.com复制进去就行了。
3、第三步在Vercel上添加域名和上面保持不变。
最后试了一下,成功了!
整个Vercel部署折腾了我整整两天,至此,网站终于可以访问了(就是网速真慢,毕竟免费的)。
重新丢给好友看,终于不是写bug了。
相关系列: