前言
Nginx除了以前常用的HTTP負載均衡外,Nginx增加基于TCP協議實現的負載均衡方法。
HTTP負載均衡,也就是我們通常所有“七層負載均衡”,工作在第七層“應用層”。而TCP負載均衡,就是我們通常所說的“四層負載均衡”,工作在“網絡層”和“傳輸層”。例如,LVS(Linux Virtual Server,Linux虛擬服務)和F5(一種硬件負載均衡設備),也是屬于“四層負載均衡”。
TCP負載均衡配置
Nginx從1.9.0版本開始,新增加了一個stream模塊,用來實現四層協議的轉發、代理或者負載均衡等鑒于Nginx在負載均衡和web service上的成功,和Nginx良好的框架,stream模塊前景一片光明。
Nginx的stream模塊默認不會自帶安裝,需要編譯安裝的時候手動添加上這個模塊,不過我的系統里是已經安裝了此模塊,如果你沒有安裝,可能需要通過官網下載源碼來打開此模塊。
nginx使用ngx_stream_core_module模塊代理tcp長連接短連接,可以增強服務器的容災能力。
TCP負載均衡的執行原理
當Nginx從監聽端口收到一個新的客戶端鏈接時,立刻執行路由調度算法,獲得指定需要連接的服務IP,然后創建一個新的上游連接,連接到指定服務器。