基于ChatGPT应用配置自定义域名

在上一篇中,基于Vercel自建ChatGPT网页应用我们使用Vercel快速搭建了自己的ChatGPT网页应用服务,可以成功访问到Vercel,但是还是存在一些问题,比如vercel提供了网址太长、又或者vercel在国内访问不了的情况。

    好在vercel被禁止访问的情况下,官方提供了单独的 IP 和 CNAME 地址给大家,对于国内的用户来说,配置一下单独的解析,加上自定义域名,就能实现拥有自己好记又便捷的网页应用。

    因此我们考虑将vercel进行解析自定义域名操作。.

    使用 Vercel + Cloudflare + 域名,自定义域名,让你拥有自己的可随时随地访问的 ChatGPT。

    提醒:自建的网页应用加上自定义域名后,尽可能少部分人使用,因为用的人多了,可能你的域名就会容易被污染

Part1开始

  1. 基于vercel自建的网页应用

  2. Cloudflare账号

  3. 域名

1Cloudflare

https://www.cloudflare.com/

Cloudflare(CF)是一个提供CDN,域名管理,静态页面托管,边缘计算函数部署等的网络服务供应商。常见的用途:购买和/或托管你的域名(解析、动态域名等),给你的服务器套上CDN(可以隐藏ip免被墙),部署网站(CF Pages)。CF免费提供大多数服务。

2域名

1. 自己去域名供应商处注册,国外有Namesilo(支持支付宝), Cloudflare等等,国内有万网等等;

2. 免费的域名供应商:eu.org(二级域名)等;

3. 问朋友要一个免费的二级域名。

本文基于Namesilos申请的域名

搜索你想要的域名,如果你只是想应用于当前应用而已,可能考虑便宜一些的,然后购买。

Part2配置 Cloudflare

  1. 注册登录Cloudflare后,在网站一栏中,点击 添加站点

输入你的域名,

基于ChatGPT应用配置自定义域名

  1. 选择Free 免费计划,

基于ChatGPT应用配置自定义域名

  1. 添加两条 DNS 记录

Vercel 官方提供了单独的 IP 和 CNAME 地址给国内用户:

A 记录地址:76.223.126.88 或 76.76.21.98

CNAME 记录地址:cname-china.vercel-dns.com

  1. 把代理状态关闭,仅 DNS。

基于ChatGPT应用配置自定义域名

  1. 添加完后,可以看到这样的提示部署

基于ChatGPT应用配置自定义域名

  1. 添加管理域名服务器

这里主要是将步骤4的Cloudflare提供的名称服务器地址复制下来,然后进入到我们购买的域名网站中,进入到域名管理中心,添加管理域名服务器

annabel.ns.cloudflare.com

bradley.ns.cloudflare.com

例如Namesilo

基于ChatGPT应用配置自定义域名

  1. 检查名称服务器

替换完成之后,再回到Cloudflare,立即启动名称服务器,可以点击 检查名称服务器,等待更新就好了,大概十分钟左右。

基于ChatGPT应用配置自定义域名

状态更新为有效之后,说明域名服务器已经转到Cloudflare,DNS也成功指向了Vercel的服务器

Part3配置域名至Vercel

打开Vercel控制台https://vercel.com/dashboard,找到之前部署的ChatGPT网页应用项目,点击Setting,找到Domains,将域名输入,并点击Add

基于ChatGPT应用配置自定义域名

选择 Add xxxxx.xyz and redirect www.xxxxx.xyz to it,然后 Add:

因为在上一步中,DNS 已经修改并应用成功,等待刷新一会,就会看到域名成功添加,也可以点击 Edit,将默认的域名删掉。

此时就可以用新的域名访问啦~

Part4说明

关于访问码和OpenAI API key增加/删除

  1. 进入vercel控制台 https://vercel.com/dashboard,点击部署的项目,点击 Settings,选择 Environment Variables 环境变量,对 CODE 的值进行 Edit,然后保存:

基于ChatGPT应用配置自定义域名

  1. 重新部署

选择 Deployments,对最新的部署记录进行 Redeploy:

基于ChatGPT应用配置自定义域名

解决页面显示协议不受支持

如果出现这种情况,那么我们需要去 Cloudflare 添加一个 SSL 边缘证书,边缘证书的好处就是无需服务器。

  1. 获取域名区域 ID,进入 Cloudflare 的网站页面,点击刚才添加好的站点,找到页面最底部,右下角的区域ID,并复制

  2. 获取 Global API Key,点击右上角 我的个人资料 > API令牌 > Global API Key > 查看,将密钥复制出来备用

  3. 安装SSL边缘证书,找到 SSL/TLS > 概述,将加密模式改为 完全(严格),向下拉到页面底部,点击 禁用通用SSL。

默认两个证书,如果不准备用它们,在禁用通用SSL后,会消失。

  1. 申请边缘证书,在本地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"}'

  1. 再此点击边缘证书 >向下拉到页面底部, 启用通用SSL

  2. 稍等后,刷新页面,就会有一个新的一年有效期的证书,这时候你就能正常访问页面了