详解使用ChatGPT解决Nginx反向代理的问题
目录
- 背景
- 使用ChatGPT解决
- 总结
背景
我有 3 台服务器,1台Web服务器对外提供访问,另外两台服务器 QC1 和 QC2 用于存储不同设备识别后保存的照片。它们的 IP 地址如下:
前端程序需要根据照片的文件名称把图片显示出来,最开始想到的就是通过 Nginx 进行反向代理来解决这个问题。
举个例子,照片文件名称是 QC1 开头的,那么就是从 192.168.100.1 服务器上取照片,用户访问 http://10.76.2.10:8029/media/QC1_20220318T131856_1_CT.jpg
,实际上访问的是 http://192.168.100.1/media/QC1_20220318T131856_1_CT.jpg
。
但是由于本人对 Nginx 配置不是很熟悉,刚好最近 ChatGPT 大红大紫,于是萌生了询问 ChatGPT 来解决这个问题的想法,于是就产生了下面我和 ChatGPT 的对话。
使用ChatGPT解决
我向 ChatGPT 说明了我要咨询关于 Nginx 反向代理的问题,并简单介绍了背景。ChatGPT 很快就理解了我的问题,并提供了如下的 Nginx 配置
接着 ChatGPT 就给出了 nginx 的配置
如果访问的地址变了,它又会重新修改配置。
我对它写的 if 语句不清楚是用来做什么的,它也能给出相应的解释。
这个时候我大概明白了,只要我们拿到 $1 变量,就可以实现根据照片的文件名来反向代理服务器的请求。但是之前它提供的 upstream 配置中并没有QC1和QC2对应的地址,还是继续让 ChatGPT 修改。
调整好后,让 ChatGPT 重新生成一个完整的 nginx 配置。
好了,我们把这个配置复制到服务器上,再稍微修改调整一些,重新启动了 Nginx,并使用浏览器测试了一下。
下面是QC1和QC2服务器上面的两张照片
我们通过 http://localhost:8029 (web服务器)分别去访问这两张照片,一切都运行正常,根据照片的文件名,Nginx 正确地将请求转发到了对应的服务器,照片也能够正确地显示出来,