中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

詳述Haproxy搭建web群集-創(chuàng)新互聯(lián)

常見的Web集群調(diào)度器

  • 目前常見的Web集群調(diào)度器分為軟件和硬件,軟件通常使用開源的LVS、Haproxy、Nginx,硬件一般使用比較多的時(shí)F5,也有很多人使用國內(nèi)的一些產(chǎn)品,如梭子魚、綠盟等

Haproxy應(yīng)用分析

LVS在企業(yè)應(yīng)用中抗負(fù)載能力強(qiáng),但存在不足

  • LVS不支持正則處理,不能實(shí)現(xiàn)動靜分離
  • 對于大型網(wǎng)站,LVS的實(shí)施配置復(fù)雜,維護(hù)成本相對較高

Haproxy是一款可提供高可用性、負(fù)載均衡、及基于TCP和HTTP應(yīng)用的代理的軟件

  • 特別適用于負(fù)載特別大的Web站點(diǎn)
  • 運(yùn)行在當(dāng)前的硬件上可支持?jǐn)?shù)以萬計(jì)的并發(fā)連接請求

Haproxy調(diào)度算法原理

Haproxy支持多種調(diào)度算法,最常用的有三種

  • RR (Round Robin)
    • RR算法是最簡單最常用的一種算法,即輪詢調(diào)度
  • 理解舉例
    • 有三個(gè)節(jié)點(diǎn)A、B、C,第一個(gè)用戶訪問會被指派到節(jié)點(diǎn)A,第二個(gè)用戶訪問會被指派到節(jié)點(diǎn)B,第三個(gè)用戶訪問會被指派到節(jié)點(diǎn)
    • 第四個(gè)用戶訪問繼續(xù)指派到節(jié)點(diǎn)A,輪詢分配訪問請求實(shí)現(xiàn)負(fù)載均衡效果
  • LC (Least Connections)
    • LC算法即最小連接數(shù)算法,根據(jù)后端的節(jié)點(diǎn)連接數(shù)大小動態(tài)分配前端請求
  • 理解舉例
    • 有三個(gè)節(jié)點(diǎn)A、B、C,各節(jié)點(diǎn)的連接數(shù)分別為A:4、B:5、 C:6, 此時(shí)如果有第一個(gè)用戶連接請求,會被指派到A上,連接數(shù)變?yōu)锳:5、B:5、 C:6
    • 第二個(gè)用戶請求會繼續(xù)分配到A上,連接數(shù)變?yōu)锳:6、B:5、 C:6; 再有新的請求會分配給B,每次將新的請求指派給連接數(shù)最小的客戶端
    • 由于實(shí)際情況下A、B、C的連接數(shù)會動態(tài)釋放,很難會出現(xiàn)一樣連接數(shù)的情況,因此此算法相比較rr算法有很大改進(jìn),是目前用到比較多的一種算法
  • SH (Source Hashing)
    • SH即基于來源訪問調(diào)度算法,此算法用于- -些有Session會話記錄在服務(wù)器端的場景,可以基于來源的IP、Cookie等做集群調(diào)度
  • 理解舉例

    成都創(chuàng)新互聯(lián)公司是一家專業(yè)從事成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)的品牌網(wǎng)絡(luò)公司。如今是成都地區(qū)具影響力的網(wǎng)站設(shè)計(jì)公司,作為專業(yè)的成都網(wǎng)站建設(shè)公司,成都創(chuàng)新互聯(lián)公司依托強(qiáng)大的技術(shù)實(shí)力、以及多年的網(wǎng)站運(yùn)營經(jīng)驗(yàn),為您提供專業(yè)的成都網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)及網(wǎng)站設(shè)計(jì)開發(fā)服務(wù)!
    • 有三個(gè)節(jié)點(diǎn)A、B、C,第一個(gè)用戶第一-次訪問被指派到了A,第二個(gè)用戶第一次訪問被指派到了B
    • 當(dāng)?shù)谝粋€(gè)用戶第二次訪問時(shí)會被繼續(xù)指派到A,第二個(gè)用戶第二次訪問時(shí)依舊會被指派到B,只要負(fù)載均衡調(diào)度器不重啟,第一個(gè)用戶訪問都會被指派到A,第二個(gè)用戶訪問都會被指派到B,實(shí)現(xiàn)集群的調(diào)度
    • 此調(diào)度算法好處是實(shí)現(xiàn)會話保持,但某些IP訪問量非常大時(shí)會引|起負(fù)載不均衡部分節(jié)點(diǎn)訪問量超大,影響業(yè)務(wù)使用

    案例拓?fù)鋱D

    詳述Haproxy搭建web群集

    Haproxy安裝與啟動

在負(fù)載均衡器上安裝Haproxy

  • 安裝步驟
    • 安裝基礎(chǔ)軟件包
    • 編譯安裝haproxy
    • 要注意操作系統(tǒng)版本,是32位系統(tǒng)還是64位
  • 建立Haproxy的配置文件
    • 創(chuàng)建配置文件目錄/etc/haproxy
    • 將源碼包提供的配置文件樣例haproxy.cfg復(fù)制到配置文件目錄中

Haproxy配置文件詳解

  • Haproxy配置文件通常分為三個(gè)部分
    • global:為全局配置
    • defaults:為默認(rèn)配置
    • listen:為應(yīng)用組件配置
  • global配置參數(shù)
    • log 127.0.0.1 local0: 配置日志記錄,local0為日志設(shè)備,默認(rèn)存放到系統(tǒng)日志
    • log 127.0.0.1 local1 notice: notice為日志級別,通常有24個(gè)級別
    • maxconn 4096:大連接數(shù)
    • uid 99:用戶uid
    • d 99:用戶gid
  • defaults配置項(xiàng)配置默認(rèn)參數(shù),一般會被應(yīng)用組件繼承,如果在應(yīng)用組件中沒有特別聲明,將安裝默認(rèn)配置參數(shù)設(shè)置
    • log global:定義日志為global配置中的日志定義
    • mode http:模式為http
    • option httplog:采用http日志格式記錄日志
    • retries 3:檢查節(jié)點(diǎn)服務(wù)器失敗連續(xù)達(dá)到三次則認(rèn)為節(jié)點(diǎn)不可用
    • maxconn 2000:大連接數(shù)
    • contimeout 5000:連接超時(shí)時(shí)間
    • clitimeout 50000:客戶端超時(shí)時(shí)間
    • srvtimeout 50000:服務(wù)器超時(shí)時(shí)間
  • listen配置項(xiàng)目一-般為配置應(yīng)用模塊參數(shù)

    • listen appli4-backup 0.0.0.0:10004:定義一個(gè)appli4-backup的應(yīng)用
    • option httpchk /index.html:檢查服務(wù)器的index.html文件
    • option persist :強(qiáng)制將請求發(fā)送到已經(jīng)down掉的服務(wù)器
    • balance roundrobin:負(fù)載均衡調(diào)度算法使用輪詢算法
    • server inst1 192. 168.114.56:80 check inter 2000 fall 3:定義在線節(jié)點(diǎn)
    • server inst2 192. 168.114.56:81 check inter 2000 fall 3 backup:定義備份節(jié)點(diǎn)

    配置與測試

  • 根據(jù)實(shí)際的案例將相應(yīng)參數(shù)進(jìn)行修改:
    • listen webcluster 0.0.0.0:80
    • option httpchk GET /index.html
    • balance roundrobin
    • server inst1 192. 168.10.61:80 check inter 2000 fall 3
    • server inst2 192.168. 10.62:80 check inter 2000 fall 3
  • 創(chuàng)建自啟動腳本,并啟動Haproxy服務(wù)
  • 測試Haproxy集群
    • 測試高性能
    • 可在兩個(gè)不同的瀏覽器中分別訪問兩個(gè)測試網(wǎng)站,正常情況下應(yīng)該出現(xiàn)兩個(gè)網(wǎng)站的測試頁面
    • 高可用性
    • 將其中一臺Nginx服務(wù)器停用,在客戶端瀏覽器中訪問Haproxy,正常情況下應(yīng)出現(xiàn)另一臺Nginx服務(wù)器網(wǎng)站測試頁面

Haproxy日志管理

  • Haproxy的日志默認(rèn)是輸出到系統(tǒng)的syslog中,在生產(chǎn)環(huán)境中一般單獨(dú)定義出來
  • 定義的方法步驟
    • 修改Haproxy配置文件中關(guān)于日志配置的選項(xiàng),加入配置:
    • log /dev/log local0 info
    • log /dev/log local0 notice
    • 修改rsyslog配置,將Haproxy相關(guān)的配置獨(dú)立定義到haproxy.conf,并放到/etc/rsyslog.d/下
    • 保存配置文件并重啟rsyslog服務(wù),完成rsyslog配置
  • 訪問Haproxy集群測試網(wǎng)頁并測試日志信息

Haproxy參數(shù)優(yōu)化

  • 隨著企業(yè)網(wǎng)站負(fù)載增加,haproxy參數(shù)優(yōu)化相當(dāng)重要
    • maxconn:大連接數(shù),根據(jù)應(yīng)用實(shí)際情況進(jìn)行調(diào)整,推薦使用10240
    • daemon:守護(hù)進(jìn)程模式,Haproxy可以使用非守護(hù)進(jìn)程模式啟動,建議使用守護(hù)進(jìn)程模式啟動
    • nbproc:負(fù)載均衡的并發(fā)進(jìn)程數(shù),建議與當(dāng)前服務(wù)器CPU核數(shù)相等或?yàn)槠?倍
    • retries:重試次數(shù),主要用于對集群節(jié)點(diǎn)的檢查,如果節(jié)點(diǎn)多,且并發(fā)量大,設(shè)置為2次或3次
    • option http-server-close: 主動關(guān)閉http請求選項(xiàng),建議在生產(chǎn)環(huán)境中使用此選項(xiàng)
    • timeout http-keep-alive: 長連接超時(shí)時(shí)間,設(shè)置長連接超時(shí)時(shí)間可以設(shè)置為10s
    • timeout http-request: http請求超時(shí)時(shí)間,建議將此時(shí)間設(shè)置為5~ 10s,增加http連接釋放速度
    • timeout client: 客戶端超時(shí)時(shí)間,如果訪問量過大,節(jié)點(diǎn)響應(yīng)慢可以將此時(shí)間設(shè)置短一些, 建議設(shè)置為1min左右就可以了

操作實(shí)例

實(shí)驗(yàn)環(huán)境

Haporxy服務(wù)器IP地址:192.168.144.175
web1服務(wù)器IP地址:192.168.144.151
web2服務(wù)器IP地址:192.168.144.176
client測試機(jī)

在web1,web2服務(wù)器上安裝Nginx

[root@web1 ~]# yum install -y \       //安裝環(huán)境需要組件包
> pcre-devel \                        //開發(fā)包
> zlib-devel \                        //壓縮包
> gcc \
> gcc-c++ \
> make 
[root@web1 ~]# useradd -M -s /sbin/nologin nginx       //創(chuàng)建系統(tǒng)用戶
[root@web1 ~]# mkdir /abc   ##創(chuàng)建掛載點(diǎn)
[root@web1 ~]# mount.cifs //192.168.100.8/LNMP-C7 /abc/       //掛載
Password for root@//192.168.100.3/LNMP-C7:  
[root@web1 ~]# cd /abc/
[root@web1 abc]# tar zxvf nginx-1.12.2.tar.gz -C /opt        //解壓
[root@web1 abc]# cd /opt/nginx-1.12.2/
[root@web1 nginx-1.12.2]# ./configure \                      //進(jìn)行配置
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx
[root@web1 nginx-1.12.2]# make && make install
[root@web1 nginx-1.12.2]# echo "this is kgv web" > /usr/local/nginx/html/test.html      //創(chuàng)建站點(diǎn)網(wǎng)頁內(nèi)容,web2上為this is accp web
[root@web1 nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/             //便于系統(tǒng)識別
[root@web1 nginx-1.12.2]# nginx -t                                                       //檢查語法
[root@web1 nginx-1.12.2]# nginx                                                         //開啟服務(wù)
[root@web1 nginx-1.12.2]# systemctl stop firewalld.service                              //關(guān)閉防火墻
[root@web1 nginx-1.12.2]# setenforce 0

在haproxy服務(wù)器上安裝haproxy調(diào)度服務(wù)

[root@haproxy ~]# yum install -y \                 //安裝環(huán)境組件工具
> pcre-devel \
> bzip2-devel \
> gcc \
> gcc-c++ \
> make
[root@haproxy ~]# systemctl stop firewalld.service          //關(guān)閉防火墻
[root@haproxy ~]# setenforce 0
[root@haproxy ~]# mkdir /abc
[root@haproxy ~]# mount.cifs //192.168.100.8/LNMP-C7 /abc/         //掛載
[root@haproxy ~]# cd /abc/
[root@haproxy abc]# tar zxvf haproxy-1.5.19.tar.gz -C /opt/          //解壓
[root@haproxy abc]# cd /opt/haproxy-1.5.19/
[root@haproxy haproxy-1.5.19]# make TARGET=linux26              //編譯
[root@haproxy haproxy-1.5.19]# make install                     //安裝
[root@haproxy haproxy-1.5.19]# mkdir /etc/haproxy               //創(chuàng)建配置文件目錄
[root@haproxy haproxy-1.5.19]# cp examples/haproxy.cfg /etc/haproxy/            //模板復(fù)制到配置目錄下
[root@haproxy haproxy-1.5.19]# cd /etc/haproxy/
[root@haproxy haproxy]# vim haproxy.cfg                    //編輯配置文件
#chroot /usr/share/haproxy     //注釋語句
#redispatch                    //注釋語句
//刪除所有l(wèi)isten項(xiàng)目,并添加
listen  webcluster 0.0.0.0:80
                option httpchk GET /test.html       //web網(wǎng)頁
                balance roundrobin                  //開啟輪詢模式
                server inst1 192.168.144.151:80 check inter 2000 fall 3      //健康檢查請求三次
                server inst2 192.168.144.176:80 check inter 2000 fall 3
[root@haproxy haproxy]# cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy     //啟動文件
[root@haproxy haproxy]# chmod +x /etc/init.d/haproxy                    //執(zhí)行權(quán)限
[root@haproxy haproxy]# chkconfig --add /etc/init.d/haproxy             //添加到service
[root@haproxy haproxy]# ln -s /usr/local/sbin/haproxy /usr/sbin/        //便于系統(tǒng)識別
[root@haproxy haproxy]# service haproxy start                           //開啟服務(wù)
Starting haproxy (via systemctl):                          [  確定  ]
[root@haproxy haproxy]# netstat -ntap | grep haproxy                         //查看端口
tcp      0     0 0.0.0.0:80       0.0.0.0:*       LISTEN      39884/haproxy

使用client測試網(wǎng)頁

詳述Haproxy搭建web群集詳述Haproxy搭建web群集

日志定義,修改haproxy配置文件

[root@haproxy haproxy]# vim /etc/haproxy/haproxy.cfg  ##修改配置文件
global
                log /dev/log    local0 info   ##添加兩個(gè)級別的日志文件
                log /dev/log    local0 notice
                #log loghost    local0 info
[root@haproxy haproxy]# service haproxy restart  ##重啟服務(wù)
[root@haproxy haproxy]# touch /etc/rsyslog.d/haproxy.conf  ##創(chuàng)建系統(tǒng)日志haproxy配置文件
[root@haproxy haproxy]# vim /etc/rsyslog.d/haproxy.conf
if ($programname == 'haproxy' and $syslogseverity-text == 'info')  ##根據(jù)級別創(chuàng)建不同的日志文件
then -/var/log/haproxy/haproxy-info.log
&~
if ($programname == 'haproxy' and $syslogseverity-text == 'notice')
then -/var/log/haproxy/haproxy-notice.log
&~
[root@haproxy haproxy]# systemctl restart rsyslog.service  ##重啟系統(tǒng)日志服務(wù)
[root@haproxy haproxy]# cd /var/log/  ##此時(shí)是沒有haproxy日志
##重新訪問網(wǎng)頁
[root@haproxy haproxy]# cd /var/log/haproxy/
[root@haproxy haproxy]# ls   ##此時(shí)就生成了info級別的日志文件
haproxy-info.log

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)頁標(biāo)題:詳述Haproxy搭建web群集-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://www.rwnh.cn/article16/dghgdg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)移動網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、響應(yīng)式網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司
池州市| 林西县| 赤城县| 永善县| 镇宁| 定日县| 高台县| 叙永县| 镇宁| 义乌市| 达日县| 庐江县| 定边县| 阿图什市| 清水河县| 伊金霍洛旗| 南召县| 北安市| 喜德县| 乳源| 临漳县| 丹阳市| 库尔勒市| 望奎县| 福清市| 吉林市| 锡林郭勒盟| 习水县| 娄底市| 兴仁县| 永寿县| 禹城市| 芜湖市| 平阳县| 泾川县| 威远县| 汝阳县| 栖霞市| 珲春市| 营口市| 罗定市|