一、反向代理作用
【作用一】可以转发自己的请求
【实践一】chatGPT请求的转发。国内调用API无法直连https://api.openai.com,但可以访问“https://api.openai-proxy.com”这样的转发站来请求
【作用二】使内网的项目,可以被外网访问(例如docker、node、java的springboot项目等启动一般会默认采用127.0.0.1:3000提供服务 )
【实践二】实战docker部署 oneapi 项目
二、提前准备:
1、如果希望实现结果 1:海外服务器(服务器本身可以直连 openai 的服务器,国内可以访问这台服务器),并安装宝塔;
2、如果希望实现结果 2:随便准备一台可以访问的服务器;
三、步骤:
1、宝塔新建静态站点,解析并绑定域名;
2、申请免费 SSL 证书;
3、配置反向代理;
4、补充反向代理配置:
proxy_ssl_server_name on;
proxy_ssl_verify off;
proxy_ssl_protocols TLSv1.2 TLSv1.3;
proxy_ssl_ciphers HIGH:!aNULL:!MD5;
4、验证效果;
实战 1 过程演示:
请看 VCR
实战 2 过程演示:
请看 VCR
四、Q&A
1、配置了不生效,如何判断问题?
答:先看网络连通(ping 命令),再看反向代理配置(代理地址、忽略被代理的 https 配置)
2、反向代理配置了之后,没办法申请 ssl 证书
答:先关闭反向代理,再配置。 如果你的证书是采用 dns 验证,就不存在这个问题;
3、反向代理配置了之后,出现了 502,检查反向代理是否忽略了源站的ssl
答:源站挂了
4、源站没办法使用https, 代理站点请求地址可以填http吗?
答:反向代理配置需要增加以下配置
#反向代理不验证代理之后的站点ssl
proxy_ssl_server_name on; proxy_ssl_verify off; proxy_ssl_protocols TLSv1.2 TLSv1.3; proxy_ssl_ciphers HIGH:!aNULL:!MD5;