Skip to content
Coding

Nginx 從入門開始的網站架設 (2):設定 Proxy Server

Nginx 從入門開始的網站架設 (2):設定 Proxy Server
位於 8083 中 www2 的 index.html

上一篇 Ngnix 基本設定 記錄了最簡單的設定,接下來要提到的是 Nginx 最廣為人知的其中一種功能--代理伺服器(Proxy Server)。


Proxy Server 代理伺服器

有一陣子募資平台很流行,當你有想法但是沒有資金的時候,你可以透過這些平台把你的計劃放上去,吸引一般民眾投入資金,接著拿這些錢去實際生產你的產品,並給當初提供你資金的民眾一些回饋。在這個過程中,募資平台所扮演的角色就是代理:你只能看到資金提供者的提供的寄件資訊,甚至完全不知道他們的身分,但你會負責把你的產品或回饋透過平台提供出去。

以網路來說,Client(一般民眾)透過代理伺服器(募資平台)發送請求給 Server(你),Server 基本上不會有 Client 的資料,而這就是 Proxy 的好處之一:隱藏 Client 的真實身分。

其他的好處還有很多,但今天我只想看這次客戶最主要的目的:Load Balance(負載平衡)。

Load Balance 負載平衡

Load Balance 的主要目的在於分散伺服器端的壓力,讓伺服器的回應速度和其他效能可以得到提升,使用者能擁有更好的體驗。而要做到這個程度一般來說都會需要依賴剛剛所提到的 proxy 做為中繼站,去判斷現在接收到的這個 request 要被分配到哪一台 server 上。


Nginx 設定

稍微了解 Proxy Server 和 Load Balance 的用途之後,接下來開始試著用 Nginx 來進行設定吧。

Proxy

首先設定好 nginx.conf :

接著到 /data/www2 底下新增一個新的 index.html,這時候 www 和 www2 的資料夾內各有一個 index.html,上一篇文章中我們會看到 www 內的 index.html,這一次的設定預期會出現的應該是 www2 內的 index.html。

儲存修改好的 config 之後, nginx -s reload 重新載入檔案,在瀏覽器中輸入 http://localhost:8081 應該就可以看到 www2 中 index.html 的內容囉。

Load Balance

要在 Nginx 中使用 Load Balance 需要在 http 中加入 upstream 這組設定,加好之後你的 nginx.conf 應該會長這樣:

設定好之後 nginx -s reload,瀏覽器打開 http://localhost:8081,持續重新整理,就可以看到交替出現的兩個 index.html 囉~

位於 8082 中 www 的 index.html
位於 8083 中 www2 的 index.html

參考資料
反向代理與正向代理
俄羅斯不愧是戰鬥民族:nginx