一、簡介
Upstream模塊是Nginx中一個核心模塊,當客戶端訪問Nginx服務器的時候,Nginx會從服務器列表中選取壓力小的服務器,然後分配給客戶端進行訪問.這個過程,Nginx通過輪詢算法輪詢所有的服務器,找到合適的分配給客戶端.而這個過程是通過Upstream模塊來實現.
所以,可以將Upstream模塊理解爲實現輪詢算法的負載均衡.
二、常用指令
1、ip_hash指令
(1)、簡介
在負載均衡系統中,如果客戶端已經在某臺服務器中登陸,如果我們在訪問系統,Nginx會給客戶端重新分配一臺服務器,這臺服務器很有可能不是原先的那臺服務器,這顯然是不妥的,因爲這樣就意味着客戶端又要重新登陸一次系統.所以需要通過ip_hash指令來解決這個問題.
ip_hash指令的原理:Nginx通過哈希算法(鍵值對)給每個客戶端指定一個對應的服務器,當一個用戶已經在一臺服務器上登陸,當它再次訪問Nginx服務器時,Nginx會從哈希集合中拿到用戶上次登陸的那個服務器,然後跳轉到服務器.
(2)、實現方式
很簡單,修改配置文件如下:
i、定位到配置文件
ii、修改配置文件
按esc 輸入:wq! 按回車鍵推出,並重啓Nginx服務器
iii、查看效果
從原先的分別跳到阿里雲服務器和百度服務器變成如果跳轉到阿里雲,如果之後訪問則一直跳轉到阿里雲.
2、server指令
(1)、服務器權重weight指令
默認的服務器列表weight權重都爲1,當指定weight權重爲2時,那麼那臺服務器,將會承擔(2/所有服務器的weight權重和)的壓力
注:如果指定了ip_hash的規則,則權重失效.兩個規則互斥.