找回密码
 立即注册
首页 业界区 科技 OpenAI 说要封禁来自中国的流量

OpenAI 说要封禁来自中国的流量

新程序 7 天前
大山在 Github 上找到了一个套壳项目,很快把这个套壳网站给部署好了,但很快就发现了问题,因为国内直接调 ChatGPT 官网的 api 也是需要科学上网的,这样的话用户得科学上网才能访问 OpenAI 的 api,这与实际的需求不符(国内用户 99% 不懂科学上网)

wZ0fOpB71q7spPEQpemOor.jpg
眼看着交付日期临近,大山急忙向 CTO Tony 求助,Tony 听了大山的汇报,心平气和地说了一句话

大山恍然大悟,于是立即动手先在 vercel.com(可以简单理解为一个免费高效的 Web 应用部署平台)上部署了一个访问 OpenAI api 的应用,然后国内的请求先访问这个应用,应用再访问 OpenAI api,打算通过这样的方式来实现间接访问 OpenAI api 的效果

然而理想很丰满,现实很骨感,国内无法访问 vercel 上的应用

大山心想主要问题在于国内无法访问 vercel,那我是不是可以找一个代理服务器,只要国内能访问,它也能访问 OpenAI,不就行了,比如香港的服务器就满足需求,于是就把自己的想法给 Tony 提了一下

Tony 笑了一下:使用代理服务器确实可以,但其实国内也有办法访问 vercel 的,可以使用 CNAME 哦

「CNAME,这是啥,之前从未听说过呢」大山困惑道

Tony 看大山对 CNAME 确实一无所知,于是给他科普起了域名解析:

我们知道域名是为了方便人类记忆的,计算机只认 IP 的,任何一个域名都要被解析成 IP 地址才能访问,为了表示域名和其对应的 IP 的关系,我们在 DNS 后台可以填上一条记录来记录域名和 IP 的关系,如下:

example.comrecord typevalueTTL
@A192.0.2.114400


一. 多个应用部署在同一台机器上的场景


LUl4E2qcelPVULL0omfz4p.jpg


oiqh4kpWBPWjMqihPIz3Bq.jpg






c965qf2fjgCfP9T66H6Fa6.jpg


二. CDN 使用


如果你用 A 记录显示不合适,因为 A 记录是记录域名与 IP 的关系,无论你填哪个地区的 IP,DNS 都无法把就近的 IP 返回给你

此时 CNAME 就派上用场了,我用 CNAME 让 b1.example.com 指向一个 DNS 调度器,这样的话每次访问请求先打到这个调度器,然后再由节点调度器根据请求的 IP 来判断它来自哪个地区的

进而调度器就可以把离这个 IP 就近的 CDN 节点 IP 返回给请求方,然后就可以从这个就近的 CDN 节点拉取内容了,完整的 CDN 请求链路如下

rQcY5m5ym4a7yd7HYG4YQL.jpg




tVw7u73wd06kDdW6Tw3DD9.jpg

搞完之后普通用户果然能访问 OpenAI api 啦

R77EFfrbGRUHFGmHhOHBfu.jpg
lN5HAmeDj6an56pO6n5445.jpg
您需要登录后才可以回帖 登录 | 立即注册