中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Haproxy服務調優及配置內容詳解

發布時間:2020-07-02 17:34:07 來源:網絡 閱讀:762 作者:筱振 欄目:系統運維

通過博文:Nginx+Tomcat實現負載均衡群集實例,可跟做!!!
LVS負載均衡群集詳解
已經能夠使用Nginx、LVS做負載均衡群集,它們各自都具有各自的特點,今天,我們認識一款比較流行的群集調度工具——Haproxy。

一、Haproxy概述

Haproxy是目前比較流行的一種群集調度工具,同類群集調度工具還有很多,比如:LVS和Nginx。相比較而言:LVS性能最好,但是搭建相對復雜;Nginx的upstream模塊支持群集功能,但是對群集節點健康檢查功能并不強,性能也不及Haproxy好。

二、使用Haproxy必須要了解的知識點

1.HTTP請求

通過URL訪問網站使用的協議是HTTP協議,此類請求一般稱為HTTP請求。

HTTP請求的方式分為GET方式和POST方式,二者的區別:

  • GET方式:內容少(一般不可以超過8kB)、不安全,內容直接附加在URL上;
  • POST方式:內容多、安全;

當使用瀏覽器訪問某一個URL,會根據請求URL返回狀態碼,通常正常是的狀態碼是:2 X X、3 XX(比如201、301),如果出現異常就會返回4 X X、5 XX(比如401、501)。

HTTP請求返回狀態碼詳情,可以參考博文:HTTP請求返回狀態碼詳解

2.負載均衡常用調度算法

利用LVS、Haproxy、Nginx搭建群集最常用的調度算法有三種:

(1)RR(輪詢算法)

RR(Round Robin):RR算法是最簡單,也最容易理解,即輪詢調度。此算法還有一種加權輪詢,即根據每個節點的權重輪詢分配訪問請求。

此算法主要用于節點服務器性能都差不多,要工作都工作;

(2)LC(最小連接數算法)

LC(Least Connections):即最小連接數算法,根據后端的節點連接數大小動態分配前端請求。能保證將新的請求分配給連接數最少的客戶端。由于實際情況中,各個節點的連接數對動態釋放,很難出現一樣連接數的情況,因此此算法想比較RR算法有很大的改進,是目前用到最多的一種算法。

(3)SH(基于來源訪問調度算法)

SH(Source Hashing):即基于來源訪問調度算法,此算法用于一些有Session會話記錄在服務器端的場景,可以基于來源的IP、Cookie等做群集調度。此算法的好處就是實現會話保持,但某些IP訪問量非常大時會引起負載不均衡,部分節點訪問量大,影響業務使用。

3.常見的Web群集調度器

目前最常見的Web群集調度器分為軟件和硬件;軟件通常使用開源的LVS、Haproxy、Nginx;硬件一般使用比較多的是F5,也有很多人使用國內的一些產品。如梭子魚、綠盟等。

4.Haproxy的應用環境

如圖:
Haproxy服務調優及配置內容詳解

三、安裝Haproxy

Haproxy的安裝包網盤鏈接:https://pan.baidu.com/s/10masYgp7VSWuZu8ebZ-pfQ
提取碼:2l44

1.編譯安裝Haproxy

[root@localhost ~]# yum -y install pcre-devel bzip2-devel
//安裝依賴包,讓Haproxy服務支持正則表達式、解壓
[root@localhost ~]# tar zxf haproxy-1.5.19.tar.gz -C /usr/src
[root@localhost ~]# cd /usr/src/haproxy-1.5.19/
[root@localhost haproxy-1.5.19]# make TARGET=linux26            //表示是64系統
//正常解壓即可,但是這個軟件不需要配置。
[root@localhost haproxy-1.5.19]# make install

2.Haproxy服務配置

(1)建立Haproxy配置文件
[root@localhost haproxy-1.5.19]# mkdir /etc/haproxy
[root@localhost haproxy-1.5.19]# cp /usr/src/haproxy-1.5.19/examples/haproxy.cfg /etc/haproxy/
//將haproxy.cfg文件復制到配置文件目錄
(2)Haproxy配置項詳解

Haproxy 配置文件通常分為三個部分:

  • global(全局配置);
  • defaults(默認配置);
  • listen(應用組件配置)

global(全局配置)通常有以下配置參數:

global
        log 127.0.0.1   local   #配置日志記錄,local0為日志設備,默認存放到系統日志
        log 127.0.0.1   local1 notice  #notice為日志級別,通常有24個級別
        #log loghost    local0 info
        maxconn 4096             #最大連接數
        chroot /usr/share/haproxy         #該服務自設置的根目錄,一般需將此行注釋掉
        uid 99         #用戶UID
        gid 99        #用戶GID
        daemon        #守護進程模式

defaults(默認配置)一般會被應用組件繼承,如果在應用組件中沒有特別聲明,將安裝默認配置參數設置,常見的參數有:

defaults
        log     global               #定義日志為global配置中的日志定義
        mode    http                 #模式為http
        option  httplog              #采用http日志格式記錄日志
        option  dontlognull
        retries 3         #檢查節點服務器失敗次數,連續達到三次失敗,則認為節點不可用
        redispatch             #當服務器負載很高時,自動結束當前隊列處理比較久的連接
        maxconn 2000                      #最大連接數
        contimeout      5000              #連接超時時間
        clitimeout      50000             #客戶端超時時間
        srvtimeout      50000             #服務器超時時間

listen(配置項)一般配置應用模塊參數:

listen  appli4-backup 0.0.0.0:10004           #定義一個名為appli4-backup的應用
                option  httpchk /index.html        #檢查服務器的index.html文件
                option  persist     #強制將請求發送到已經down掉的服務器,一般禁用此選項。
                balance roundrobin        #負載均衡調度算法使用輪詢算法
            server  inst1 192.168.114.56:80 check inter 2000 fall 3     #定義在線節點
         server  inst2 192.168.114.56:81 check inter 2000 fall 3 backup #定義備份節點
#注意:在以上定義備份節點的參數中,
#“check inter 2000”表示haproxy服務器和節點之間的一個心跳頻率,
#“fall 3”表示連續三次檢測不到心跳頻率則認為該節點失效。
#節點配置后帶有“ backup”表示該節點只是個備份節點,只有主節點失效該節點才會上。
#去除backup,表示為主節點,和其他主節點共同提供服務。
(3)Haproxy的參數調優

如圖:
Haproxy服務調優及配置內容詳解

以下修改的配置文件可以滿足正常需求,如果詳細閱讀以上配置項的意思,可以自行添加需求。

global
        log 127.0.0.1   local0
        log 127.0.0.1   local1 notice
        #log loghost    local0 info
        maxconn 4096
        #chroot /usr/share/haproxy
        uid 99
        gid 99
        daemon
        #debug
        #quiet

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        retries 3
        #redispatch
        maxconn 2000
        contimeout      5000
        clitimeout      50000
        srvtimeout      50000

listen  appli1-rewrite 0.0.0.0:80
        option httpchk GET /index.html
        balance roundrobin
        server  app1_1 192.168.1.3:80 check inter 2000 rise 2 fall 5
        server  app1_2 192.168.1.4:80 check inter 2000 rise 2 fall 5

這里就不解釋具體都是什么意思了。

(4)創建啟動腳本
[root@localhost ~]# cp /usr/src/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
[root@localhost ~]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy 
[root@localhost ~]# chmod +x /etc/init.d/haproxy 
[root@localhost ~]# chkconfig --add /etc/init.d/haproxy 
[root@localhost ~]# /etc/init.d/haproxy start
Starting haproxy (via systemctl):                          [  確定  ]
//都是很基礎的命令,這里就不解釋都是什么意思了
(5)Haproxy服務的日志

Haproxy的日志默認輸出到系統的syslog中,查看起來非常不方便,為了更好的管理Haproxy的日志信息,我們在聲場環境中一般單獨定義出來。方法如下:

[root@localhost ~]# vim /etc/haproxy/haproxy.cfg 
global
        log /dev/log local0 info
        log /dev/log local0 notice
//添加兩行內容,把原本關于日志的信息注釋掉
[root@localhost ~]# systemctl restart haproxy
//重啟服務
[root@localhost ~]# vim /etc/rsyslog.d/haproxy.conf
//定義Haproxy服務的日志文件存放的位置,添加如下內容:
if ($programname == 'haproxy' and $syslogseverity-text == 'info') then -/var/log/haproxy/haproxy-info.log
& ~
if ($programname == 'haproxy' and $syslogseverity-text == 'notice') then -/var/log/haproxy/haproxy-notice.log
& ~
[root@localhost ~]# systemctl restart rsyslog
//重啟日志服務

當客戶端訪問時,就可以利用以下命令查看Haproxy服務的日志文件

[root@localhost ~]# tail -f /var/log/haproxy/haproxy-info.log

———————— 本文至此結束,感謝閱讀 ————————

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高雄县| 广州市| 启东市| 达孜县| 乌什县| 营口市| 尤溪县| 莱州市| 双牌县| 淮滨县| 金寨县| 大丰市| 天镇县| 禹州市| 沙坪坝区| 莱芜市| 若尔盖县| 锡林郭勒盟| 镇坪县| 兰考县| 雷州市| 惠东县| 漳州市| 潢川县| 通榆县| 禹城市| 锦州市| 阳曲县| 莎车县| 历史| 姚安县| 米林县| 铜川市| 安康市| 大悟县| 漾濞| 千阳县| 永泰县| 平安县| 阳新县| 纳雍县|