nginxftp負載均衡
A. 使用Nginx實現負載均衡
一、負載均衡的作用
1、轉發功能
按照一定的演算法【權重、輪詢】,將客戶端請求轉發到不同應用伺服器上,減輕單個伺服器壓力,提高系統並發量。
2、故障移除
通過心跳檢測的方式,判斷應用伺服器當前是否可以正常工作,如果伺服器期宕掉,自動將請求發送到其他應用伺服器。
3、恢復添加
如檢測到發生故障的應用伺服器恢復工作,自動將其添加到處理用戶請求隊伍中。
二、Nginx實現負載均衡
1、源地址哈希法:根據獲取客戶端的IP地址,通過哈希函數計算得到一個數值,用該數值對伺服器列表的大小進行取模運算,得到的結果便是客服端要訪問伺服器的序號。採用源地址哈希法進行負載均衡,同一IP地址的客戶端,當後端伺服器列表不變時,它每次都會映射到同一台後端伺服器進行訪問。
2、輪詢法:將請求按順序輪流地分配到後端伺服器上,它均衡地對待後端的每一台伺服器,而不關心伺服器實際的連接數和當前的系統負載。
3、隨機法:通過系統的隨機演算法,根據後端伺服器的列表大小值來隨機選取其中的一台伺服器進行訪問。
4、加權輪詢法:不同的後端伺服器可能機器的配置和當前系統的負載並不相同,因此它們的抗壓能力也不相同。給配置高、負載低的機器配置更高的權重,讓其處理更多的請;而配置低、負載高的機器,給其分配較低的權重,降低其系統負載,加權輪詢能很好地處理這一問題,並將請求順序且按照權重分配到後端。
5、加權隨機法:與加權輪詢法一樣,加權隨機法也根據後端機器的配置,系統的負載分配不同的權重。不同的是,它是按照權重隨機請求後端伺服器,而非順序。
6、最小連接數法:由於後端伺服器的配置不盡相同,對於請求的處理有快有慢,最小連接數法根據後端伺服器當前的連接情況,動態地選取其中當前積壓連接數最少的一台伺服器來處理當前的請求,盡可能地提高後端服務的利用效率,將負責合理地分流到每一台伺服器。
三、配置說明
四、輪詢
五、權重
六、iphash
七、最少鏈接
八、fair
九、完整代碼
十、也可以使用域名
B. nginx在做負載均衡時如何配置
1、下面的架構就是我們今天的演示結構,後端有兩台伺服器,分別是node1和node2,前端是一台web伺服器,然後在web伺服器上做負載均衡,將前端的訪問流量導到後端的兩個節點伺服器上。三個伺服器的IP地址分別是:web:192.168.1.210node1:192.168.1.211node2:192.168.1.212
2、按照這樣的架構,在後端的node1和node2節點上分配配置好需要訪問的網站,然後為了方便測試,我們將兩個網站的主頁分別改成下面的內容。便於區分訪問的節點。
3、後端兩個節點配置好以後,我們再來配置web伺服器里的負載均衡配置,首先使用默認配置,先打開/etc/nginx/nginx.conf配置文件,在http區塊里添加upstream塊內容,及配置了兩個後端伺服器,後端負載均衡集群的名稱是backend,記下這個名稱。
4、然後再打開/etc/nginx/conf.d/default.conf這個配置文件,在server區塊里,把location裡面的內容改成圖中所示內容。即將所有訪問192.168.1.210的流量代理到後端的backend集群里。
5、配置文件配置好以後,使用nginx-t命令測試一下配置文件,保證配置文件是ok狀態,然後執行nginx命令啟動nginx伺服器。
6、啟動後在瀏覽器上輸入前端web伺服器的ip地址192.168.1.210,然後可以看到第一次是node1響應的,然後刷新一下以後,又變成了node2響應的。就這樣實現了負載均衡的效果。由兩個伺服器分別響應,是因為默認的負載均衡演算法是輪詢演算法,即兩個節點輪流來。
7、然後我們還可以嘗試一下加權輪詢演算法,即給不同的節點配置不同的權重,權重高一點的伺服器,響應的多一些,權重第一點的響應少一些。加權輪詢演算法配置,在後端伺服器後面加上權重碼指喚值weight即可。配置好以後,執行nginx-t命令檢測配置文件,確認無誤後,執行nginx-sreload命令重新載入配置文件。
8、通過加權輪詢的方式,我們無法通過手動一次次點擊,最後來統計次數。但是我們可以使用自動化工具來統計。使用的工具是一款叫做httpd-tools的軟體,安裝好以後,提供了一個ab命令
9、然後我們來執行ab命令進行測試,常用的格式是:ab-n1000-c50http://localhost這個命令是在210伺服器上執行的。表示一共執行1000次訪問,每次發送50個請求。
10、然後我們登錄到後端的node1伺服器上,打開nginx的訪問日誌,從中可以看到ab命令測試的訪問信息里,訪問來源都是ApacheBench,因此可以通過可以來源來統計nginx響應的次數。命令是:grepApacheBenchaccess.log|wcnode1和node2節點上的統計結果分別是714和286,如下面圖中所逗羨示,雖然沒有達到5:2的遲凱權重比例,但是也非常接近了。說明這個配置生效了。