首頁 > 軟體

詳解使用ChatGPT解決Nginx反向代理的問題

2023-03-21 06:02:39

背景

我有 3 臺伺服器,1臺Web伺服器對外提供存取,另外兩臺伺服器 QC1 和 QC2 用於儲存不同裝置識別後儲存的照片。它們的 IP 地址如下:

伺服器名稱IP地址
Web伺服器10.76.2.10
QC1192.168.100.1
QC2192.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 正確地將請求轉發到了對應的伺服器,照片也能夠正確地顯示出來,


IT145.com E-mail:sddin#qq.com