如何配置nginx作為負載均衡

如何配置nginx作為負載均衡

?一、負載均衡的作用

1、轉發功能? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(推薦學習:nginx教程

按照一定的算法【權重、輪詢】,將客戶端請求轉發到不同應用服務器上,減輕單個服務器壓力,提高系統并發量。

2、故障移除

通過心跳檢測的方式,判斷應用服務器當前是否可以正常工作,如果服務器期宕掉,自動將請求發送到其他應用服務器。

3、恢復添加

如檢測到發生故障的應用服務器恢復工作,自動將其添加到處理用戶請求隊伍中。

如何配置nginx作為負載均衡

二、nginx實現負載均衡

同樣使用兩個tomcat模擬兩臺應用服務器,端口號分別為8080 和8081

1、Nginx的負載分發策略

Nginx 的 upstream目前支持的分配算法:?

1)、輪詢 ——1:1 輪流處理請求(默認)

每個請求按時間順序逐一分配到不同的應用服務器,如果應用服務器down掉,自動剔除,剩下的繼續輪詢。?

2)、權重 ——you can you up

通過配置權重,指定輪詢幾率,權重和訪問比率成正比,用于應用服務器性能不均的情況。?

3)、ip_哈希算法

每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個應用服務器,可以解決session共享的問題。?

2、配置Nginx的負載均衡與分發策略

?通過在upstream參數中添加的應用服務器IP后添加指定參數即可實現,如:

upstream?tomcatserver1?{?? ????server?192.168.72.49:8080?weight=3;?? ????server?192.168.72.49:8081;?? ????}??? ?? ?server?{?? ????????listen???????80;?? ????????server_name??8080.max.com;?? ????????#charset?koi8-r;?? ????????#access_log??logs/host.access.log??main;?? ????????location?/?{?? ????????????proxy_pass???http://tomcatserver1;?? ????????????index??index.html?index.htm;?? ????????}?? ?????}

通過以上配置,便可以實現,在訪問8080.max.com這個網站時,由于配置了proxy_pass地址,所有請求都會先通過nginx反向代理服務器,在服務器將請求轉發給目的主機時,讀取upstream為 tomcatsever1的地址,讀取分發策略,配置tomcat1權重為3,所以nginx會將大部分請求發送給49服務器上的tomcat1,也就是8080端口;較少部分給tomcat2來實現有條件的負載均衡,當然這個條件就是服務器1、2的硬件指數處理請求能力。?

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享