基于cloudFlare实现反向代理,可以访问openai Api (超详细版本)
1、域名购买2、cloudFlare账号注册及DNS服务器修改3、cloudFlare worker创建及反向代理配置。
操作步骤说明:
1、域名购买
2、cloudFlare账号注册及DNS服务器修改
3、cloudFlare worker创建及反向代理配置
一、域名注册
国内主流的域名注册途径是腾讯云、阿里云,这里我选择在腾讯云购买域名。附上购买链接:
域名注册购买_域名注册选购 - 腾讯云
域名注册购买_域名注册选购 - 腾讯云 (tencent.com)https://buy.cloud.tencent.com/domain?from=console我们买域名的时候,往往只注意到了首购价,但是这里会有一个坑等着我们,那就是续费价。有的域名节点,例如.cloud 域名,首购价10元/年,但是续费价要130元/年,因此我们在购买域名的时候,要综合考虑首购及续费的价格因素,选择性价比最高的域名。
除了购买的时候,顶级域名后缀选择的这个问题以外,其余域名注册流程,按照腾讯云官方教程,都很详尽,这里不再赘述。
二、cloudFlare注册账号
首先,前往cloudFlare官网,根据提示注册账号。
Cloudflare | Web Performance & Securityhttps://dash.cloudflare.com/而后,登录到cloudFlare,点击右边侧边栏 “网站”,点击“添加站点”
而后在这里输入刚刚购买的域名,
把页面拉到最下面选择 免费free 然后点击继续,
然后进行dns配置,参照我下图的内容进行配置,点击保存记录后,然后点击继续
然后就会到达dns服务器修改界面
回到腾讯云的域名管理界面,点击更多,选择修改DNS服务器
选择自定义DNS,将cloudFlare提供的DNS信息输入上去,完成dns服务器修改。
修改完成后,dns状态会变为其他,此时完成dns服务器修改。
回到cloudflare,等待10分钟-24小时左右,等待DNS服务器更新。更新通过后,会发邮件通知你,完成dns域名服务器修改。
三、cloudFlare worker创建及反向代理配置
返回cloudFlare主页,点击侧边栏“workers和pages",点击创建应用程序
点击创建worker
输入worker名称,这里可以自定义,例如openai-proxy-info,然后点击部署
部署完成之后,点击快速编辑
替换如下代码,然后点击保存并部署。
const TELEGRAPH_URL = 'https://api.openai.com';
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
const url = new URL(request.url);
url.host = TELEGRAPH_URL.replace(/^https?:\/\//, '');
const modifiedRequest = new Request(url.toString(), {
headers: request.headers,
method: request.method,
body: request.body,
redirect: 'follow'
});
const response = await fetch(modifiedRequest);
const modifiedResponse = new Response(response.body, response);
// 添加允许跨域访问的响应头
modifiedResponse.headers.set('Access-Control-Allow-Origin', '*');
return modifiedResponse;
}
然后点击触发器,点击添加自定义域,完成这一步之后,就可以通过你刚刚申请的域名,例如https://workai.funy 来代替 OpenAI 的 API 地址 https://api.openai.com.
这里输入刚刚购买的域名,点击添加就可以了。
到这里,就完成基于cloudFlare实现反向代理,可以国内访问openai Api,再也不会出现443err问题了。
喜欢的小伙伴可以点个关注、收藏、赞同哦~
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)