上一篇文章 中我們用最簡單的設定建立起一個靜態服務了,接下來要提到的是 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
囉~
參考資料: