背景
我有 3 台服务器,1台Web服务器对外提供访问,另外两台服务器 QC1 和 QC2 用于存储不同设备识别后保存的照片。它们的 IP 地址如下:
服务器名称 | IP地址 |
---|---|
Web服务器 | 10.76.2.10 |
QC1 | 192.168.100.1 |
QC2 | 192.168.100.2 |
前端程序需要根据照片的文件名称把图片显示出来,最开始想到的就是通过 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 正确地将请求转发到了对应的服务器,照片也能够正确地显示出来,???!
总结
在本文中,我们不仅通过与 ChatGPT 对话来解决了 Nginx 反向代理的问题,并且还能在这个过程中学习到了使用 if
指令来控制请求,学习到新的知识点。
然而,我们也需要注意到一个问题,一开始它并没有正确的给出正确的 Nginx 配置,需要在使用 ChatGPT 的过程中进行反复验证和调整,以确保得到正确的答案,有时可能需要与我们自己的知识和经验相结合,以获得最佳的解决方案。
如果我们降低对 ChatGPT 的期望将其作为工具来使用,而不是完全相信它,ChatGPT 也是一个不错的小助手。
以上就是详解使用ChatGPT解决Nginx反向代理的问题的详细内容,更多关于ChatGPT Nginx反向代理的资料请关注编程网其它相关文章!