Nginx搭建负载均衡集群
(1).實驗環境
youxi1 192.168.5.101 負載均衡器
youxi2 192.168.5.102 主機1
youxi3 192.168.5.103 主機2
(2).Nginx負載均衡策略
nginx的負載均衡用于upstream模板定義的后端服務器列表中選取一臺服務器接收用戶的請求。一個基本的upstream模塊如下:
| 1 2 3 4 5 |
|
在upstream模塊配置完成后,要讓指定的訪問反向代理到服務器列表,格式如下:
| 1 2 3 4 |
|
擴展:nginx的location配置規則:http://outofmemory.cn/code-snippet/742/nginx-location-configuration-xiangxi-explain
這樣就完成了最基本的負載均衡,但是這并不能滿足實際需求。目前Nginx的upstream模塊支持6種方式的負載均衡策略(算法):輪詢(默認方式)、weight(權重方式)、ip_hash(依據ip分配方式)、least_conn(最少連接方式)、fair(第三方提供的響應時間方式)、url_hash(第三方通過的依據URL分配方式)。
1)輪詢
最基本的配置方法,是upstream模塊默認的負載均衡策略。每個請求會按時間順序平均分配到不同的后端服務器。有如下參數:
| fail_timeout | 與max_fails結合使用 |
| max_fails | 在fail_timeout參數設置的時間內最大失敗次數。如果在這個時間內,所有該服務器的請求都失敗了,那么認為該服務器停機 |
| fail_time | 服務器被認為停機的時長,默認10s(被認為停機的服務器嘗試間隔?) |
| backup | 標記該服務器為備用服務器。當主服務器停止時,請求會被發送到它這里 |
| down | 標記服務器永久停機 |
注意:1.down標記的服務器會自動剔除;2.缺省就是輪詢;3.此策略適合服務器配置無狀態且短平塊的服務使用
2)weight
權重方式,在輪詢策略的基礎上指定輪詢的幾率。也可以認為是在輪詢的基礎上新增了一個weight的參數,此參數指定輪詢的幾率,值為number。upstream模塊配置模板如下:
| 1 2 3 4 5 |
|
在該例子中,沒有weight參數的服務器默認為1,weight的數值與訪問比例成正比,所有weight值的總和為一個循環單位,服務器自身的weight值為循環單位內的輪詢次數。
注意:1.權重越高分配到的請求越多;2.此策略可以和least_conn策略、iphash策略結合使用;3.此策略比較適合服務器硬件配置差距較大的情況。
3)ip_hash
依據ip分配方式,指定負載均衡器按照基于客戶端IP的分配方式,這個方法確保了相同的客戶端請求一致發送到相同的服務器,以保證session會話。這樣每個訪客都固定訪問一個后端服務器,可以解決session不能跨服務器的問題。upstream模塊配置模板如下:
| 1 2 3 4 5 6 |
|
注意:1.nginx1.3.1之前的版本不能在ip_hash中使用權重(weight);2..ip_hash不能與backup同時使用;3.此策略適合有狀態服務的程序,比如session;4.當有服務器需要剔除,必須手動down掉。
4)least_conn
最少連接方式,把請求發給鏈接數最少的后端服務器。輪詢是把請求平均分配給各個后端,使它們的負載大致相同。但是,有些請求占用的時間很長,會導致其所在的后端負載較高。這種情況下,least_conn這種方式就可以達到更好的負載均衡效果。upstream模塊配置模板如下:
| 1 2 3 4 5 6 |
|
注意:此策略適合請求處理時間長短不一造成的服務器過載情況。
5)fair
響應時間方式,按照服務器端的響應時間來分配請求,響應時間短的優先分配。upstream模塊配置模板如下:
| 1 2 3 4 5 6 |
|
注意:需要安裝第三方插件。
6)url_hash
url分配方式,按訪問url的hash結果來分配請求,使每個url定向到同一個后端服務器,要配合緩存命中來使用。同一個資源多次請求可能會到達不同的服務器上,導致不必要的多次下載,緩存命中率不高,以及一些資源時間的浪費。而使用url_hash,可以使得同一個url(也就是同一個資源請求)會到達同一臺服務器,一旦緩存住了資源,再次收到請求,就可以在緩存中讀取。upstream模塊配置模板如下:
| 1 2 3 4 5 6 |
|
注意:1.需要安裝第三方插件;2.uri,是i,不是小寫的L。
(3).實驗
1)在負載均衡器youxi1上編譯安裝nginx
安裝nginx的依賴包
| 1 |
|
上傳nginx源碼包nginx-1.14.1.tar.gz,解壓安裝
| 1 2 3 4 5 6 |
|
參數說明:
--with-http_dav_module,啟用ngx_http_dav_module支持(增加PUT,DELETE,MKCOL:創建集合,COPY和MOVE方法)默認情況下為關閉,需編譯開啟;
--with-http_stub_status_module,啟用ngx_http_stub_status_module支持(獲取nginx自上次啟動以來的工作狀態);
--with-http_addition_module,啟用ngx_http_addition_module支持(作為一個輸出過濾器,支持不完全緩沖,分部分響應請求);
--with-http_sub_module,啟用ngx_http_sub_module支持(允許用一些其他文本替換nginx響應中的一些文本);
--with-http_flv_module,啟用ngx_http_flv_module支持(提供尋求內存使用基于時間的偏移量文件);
--with-http_mp4_module,啟用對mp4文件支持(提供尋求內存使用基于時間的偏移量文件)。
生成nginx用戶
| 1 |
|
啟動并添加開機自啟
| 1 2 3 |
|
如果防火墻是開啟的記得添加端口號
| 1 2 3 |
|
查看下界面,看看nginx是否正常安裝
測試完成后,修改nginx的配置文件,最后重啟nginx
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
2)在youxi2和youxi3上布置網頁程序
| 1 2 3 4 5 6 7 8 9 10 11 |
?
|
如果防火墻是開啟的,記得添加端口號
| 1 2 3 4 5 6 7 |
?
|
3)測試
首先測試html頁面
接著測試php頁面
最后測試其他頁面
轉自:https://www.cnblogs.com/diantong/p/11208508.html
總結
以上是生活随笔為你收集整理的Nginx搭建负载均衡集群的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2022-2028年中国氢化丁腈橡胶行业
- 下一篇: 2022-2028年中国轻型输送带行业市