在上一篇中,基于Vercel自建ChatGPT网页应用我们使用Vercel快速搭建了自己的ChatGPT网页应用服务,可以成功访问到Vercel,但是还是存在一些问题,比如vercel提供了网址太长、又或者vercel在国内访问不了的情况。
好在vercel被禁止访问的情况下,官方提供了单独的 IP 和 CNAME 地址给大家,对于国内的用户来说,配置一下单独的解析,加上自定义域名,就能实现拥有自己好记又便捷的网页应用。
因此我们考虑将vercel进行解析自定义域名操作。.
使用 Vercel + Cloudflare + 域名,自定义域名,让你拥有自己的可随时随地访问的 ChatGPT。
提醒:自建的网页应用加上自定义域名后,尽可能少部分人使用,因为用的人多了,可能你的域名就会容易被污染
Part1开始
-
基于vercel自建的网页应用
-
Cloudflare账号
-
域名
1Cloudflare
https://www.cloudflare.com/
Cloudflare(CF)是一个提供CDN,域名管理,静态页面托管,边缘计算函数部署等的网络服务供应商。常见的用途:购买和/或托管你的域名(解析、动态域名等),给你的服务器套上CDN(可以隐藏ip免被墙),部署网站(CF Pages)。CF免费提供大多数服务。
2域名
1. 自己去域名供应商处注册,国外有Namesilo(支持支付宝), Cloudflare等等,国内有万网等等;
2. 免费的域名供应商:eu.org(二级域名)等;
3. 问朋友要一个免费的二级域名。
本文基于Namesilos申请的域名
搜索你想要的域名,如果你只是想应用于当前应用而已,可能考虑便宜一些的,然后购买。
Part2配置 Cloudflare
-
注册登录Cloudflare后,在网站一栏中,点击 添加站点
输入你的域名,
-
选择Free 免费计划,
-
添加两条 DNS 记录
Vercel 官方提供了单独的 IP 和 CNAME 地址给国内用户:
A 记录地址:76.223.126.88 或 76.76.21.98
CNAME 记录地址:cname-china.vercel-dns.com
-
把代理状态关闭,仅 DNS。
-
添加完后,可以看到这样的提示部署
-
添加管理域名服务器
这里主要是将步骤4的Cloudflare提供的名称服务器地址复制下来,然后进入到我们购买的域名网站中,进入到域名管理中心,添加管理域名服务器
annabel.ns.cloudflare.com
bradley.ns.cloudflare.com
例如Namesilo
-
检查名称服务器
替换完成之后,再回到Cloudflare,立即启动名称服务器,可以点击 检查名称服务器,等待更新就好了,大概十分钟左右。
状态更新为有效之后,说明域名服务器已经转到Cloudflare,DNS也成功指向了Vercel的服务器
Part3配置域名至Vercel
打开Vercel控制台https://vercel.com/dashboard,找到之前部署的ChatGPT网页应用项目,点击Setting,找到Domains,将域名输入,并点击Add
选择 Add xxxxx.xyz and redirect www.xxxxx.xyz to it,然后 Add:
因为在上一步中,DNS 已经修改并应用成功,等待刷新一会,就会看到域名成功添加,也可以点击 Edit,将默认的域名删掉。
此时就可以用新的域名访问啦~
Part4说明
关于访问码和OpenAI API key增加/删除
-
进入vercel控制台 https://vercel.com/dashboard,点击部署的项目,点击 Settings,选择 Environment Variables 环境变量,对 CODE 的值进行 Edit,然后保存:
-
重新部署
选择 Deployments,对最新的部署记录进行 Redeploy:
解决页面显示协议不受支持
如果出现这种情况,那么我们需要去 Cloudflare 添加一个 SSL 边缘证书,边缘证书的好处就是无需服务器。
-
获取域名区域 ID,进入 Cloudflare 的网站页面,点击刚才添加好的站点,找到页面最底部,右下角的区域ID,并复制
-
获取 Global API Key,点击右上角 我的个人资料 > API令牌 > Global API Key > 查看,将密钥复制出来备用
-
安装SSL边缘证书,找到 SSL/TLS > 概述,将加密模式改为 完全(严格),向下拉到页面底部,点击 禁用通用SSL。
默认两个证书,如果不准备用它们,在禁用通用SSL后,会消失。
-
申请边缘证书,在本地CMD运行以下代码,替换之前复制的域名区域ID、Global API Key密钥、账户邮箱。如果返回消息ture,代表申请证书成功
curl -X PATCH "https://api.cloudflare.com/client/v4/zones/域名区域ID/ssl/universal/settings" \ -H "Content-Type: application/json" \ -H "X-Auth-Email: 账户邮箱" \ -H "X-Auth-Key: Global API Key密钥" \ --data '{"certificate_authority": "digicert"}'
-
再此点击边缘证书 >向下拉到页面底部, 启用通用SSL
-
稍等后,刷新页面,就会有一个新的一年有效期的证书,这时候你就能正常访问页面了