詳解使用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 正確地將請求轉發到了對應的服務器,照片也能夠正確地顯示出來,