最近有個案子,客戶覺得我們第一次交上去的壓力測試結果太狼狽,要我們想辦法把數字做得更好,於是我們嘗試了 windows 內建的 Network Load Balance(NLB)來進行設定,礙於網路管理的基礎知識不足,遇到了非常多的阻礙 QQ
最後透過 Nginx 成功做到了 Load Balance,這個系列的文章就是來紀錄順便複習學習到的內容。
Beginner’s Guide
從 Nginx 的官網上下載下來的檔案內容其實很簡單,只有一個 exe 執行檔和一些資料夾。
Nginx 的運作方式主要是靠 nginx.conf 來決定的,這個檔案通常會在 /usr/local/nginx/conf /etc/nginx /usr/local/etc/nginx 這幾個目錄底下。
啟動 Nginx
- 雙擊來執行
nginx.exe - 透過 cmd 切換到 nginx 的資料夾底下,執行
start nginx
對 Nginx 進行操作
nginx 被執行起來後就需要以 nginx -s <options> 的方式來控制:

其中 nginx -s stop 和 nginx -s quit 的差別在於:
quit- 停止接收 request,等到手上這個 request 處理完之後,才會結束目前的服務stop- 立刻結束服務
另外, nginx -s quit 只能由開啟 nginx 的使用者(帳號)執行。
除了 nginx -s stop 之外,最常會用到的應該是 nginx -s reload。
如果 nginx.conf 有進行修改的話,執行 reload 後主程式才會吃到這個設定的更改。如果主程式設定成功,會通知其他舊有的程式,讓他們停止接收新的 request,將手上的 request 處理完之後結束服務,用新的設定開啟一個新的程式。如果主程式設定失敗的話,會把設定 rollback 成舊的設定並繼續執行。
config 檔案的名詞
在修改 nginx.conf 之前,先來認識一下 config 檔案裏面基本的組成元素:
simple directives- 包含指令名稱和參數,兩者之間用半形空白來區隔,並且以半形分號;作為結尾block directive- 結構和simple directives一樣,但他會被半形大括號{}包起來context- 一個block directive裡面有其他的directive,例如eventshttpserverlocation都是屬於context