centos7編譯安裝haproxy


 

centos7編譯安裝haproxy

 

sudo yum install -y pcre-devel bzip2-devel gcc gcc-c++ make

useradd -s /sbin/nologin -M  haproxy    #--創建一個不可登錄系統,且沒有家目錄的用戶

cd /home/admin/soft

wget http://download.openpkg.org/components/cache/haproxy/haproxy-1.8.10.tar.gz

tar -zxf haproxy-1.8.10.tar.gz

cd haproxy-1.8.10

make TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1

sudo make install PREFIX=/usr/local/haproxy

sudo cp haproxy  /usr/sbin/ 

sudo mkdir -p  /usr/local/haproxy/log

sudo touch  /usr/local/haproxy/log/haproxy.log

 

# # USE_PCRE=1 開啟正則 USE_OPENSSL=1 開啟openssl USE_ZLIB=1

# # USE_CPU_AFFINITY=1 為開啟haproxy進程與CPU核心綁定,USE_SYSTEMD=1為支持使用 -Ws參數(systemd-aware master-worker 模式)啟動Haproxy,從而實現單主進程多子進程運行模式。

 

准備system啟動腳本

sudo cp examples/haproxy.init /etc/init.d/haproxy    
sudo chmod 755 /etc/init.d/haproxy           
sudo chkconfig --add haproxy
sudo cp contrib/systemd/haproxy.service.in /lib/systemd/system/haproxy.service

 

准備系統配置文件

# cat  /etc/sysconfig/haproxy
# Add extra options to the haproxy daemon here. This can be useful for
# specifying multiple configuration files with multiple -f options.
# See haproxy(1) for a complete list of options.
OPTIONS=""

 

配置各個負載的內核參數

# vim /etc/sysctl.conf
net.ipv4.ip_nonlocal_bind = 1 
#開啟允許綁定非本機的IP,haporxy啟動忽視VIP存在
net.ipv4.ip_forward = 1
#內核是否轉發數據包
sudo sysctl  -p  
# 配置內核參數生效

 

配置文件

sudo mkdir /etc/haproxy
sudo mkdir /var/lib/haproxy
sudo mkdir /etc/haproxy/conf

 

# cat /etc/haproxy/haproxy.cfg
#--------------全局配置----------------
global
    log 127.0.0.1   local0  notice        #配置全局日志記錄,local0為日志設備,notice為輸出的日志級別,表示使用本地(127.0.0.1)機器上的rsyslog服務中的local0設備記錄日志等級為notice的日志。
    #log loghost    local0 info #定義haproxy 日志級別
     maxconn 20480        #可以接收的最大並發連接數
 #chroot  /usr/local/haproxy-1.5.15     #工作目錄
    pidfile  /var/run/haproxy.pid     #haproxy 進程PID文件
    #maxconn  4000         #最大連接數
    user   haproxy       #運行的程序用戶
    group   haproxy   #運行的程序用戶組
    daemon           #創建1個進程進入deamon模式運行,以后台形式運行harpoxy
#---------------------------------------------------------------------
#common defaults that all the 'listen' and 'backend' sections will
#use if not designated in their block
#---------------------------------------------------------------------
defaults
    mode   http       #所處理的類別,tcp是四層,http是七層,health只會返回OK,若是混合模式則mode不需要設置
    log    global        #定義日志,采用全局定義
    option  dontlognull    #不記錄健康檢查的日志信息
    option  httpclose     #每次請求完畢后主動關閉http通道
    option  httplog    #日志類別為http日志格式;如果是混合模式,此處還需要加上tcpclog
    #option  forwardfor    #后端服務器可以從Http Header中獲得客戶端ip
    option  redispatch     #serverId對應的服務器掛掉后,強制定向到其他健康的服務器
    balance roundrobin    #設置默認負載均衡方式,輪詢方式
    timeout connect 10s  #連接超時
    timeout client 10s   #客戶端連接超時
    timeout server 10s   #服務器連接超時
    timeout check 10s    #健康檢測的超時時間
    maxconn     60000    #最大連接數
    retries     3        #3次連接失敗就為服務不可用
#--------------統計頁面配置------------------
listen admin_stats       #為haproxy訪問狀態監控頁面配置,取名為admin_stats
    bind 0.0.0.0:8189      #監聽端口
    stats enable         #啟用監聽端口
    mode http         #http的7層模式
    log global         # 繼承global中log的定義
    stats uri  /stats     #監控頁面的url訪問路徑,即http://ip/stats訪問監控頁面
    stats realm Haproxy\ Statistics     #監控頁面的密碼框提示信息
    stats auth  admin:admin          #監控頁面的用戶和密碼admin,可以設置多個用戶名
    #stats hide-version   #隱藏統計頁面上HAProxy的版本信息
    stats admin if TRUE    #當通過認證才可管理
    stats refresh 30s    #頁面自動刷新時間30s
#---------------web設置-----------------------
listen webcluster     #定義webcluster服務器組。
        bind 0.0.0.0:81   #定義haproxy前端部分監聽的端口。
        mode http    #http的7模式
        #option httpchk GET /index.html     #心跳檢測7層訪問
        log global    #繼承global中log的定義
        maxconn 3000   #server進程可接受的最大並發連接數
        balance roundrobin    #負載均衡的方式:輪詢
        cookie SESSION_COOKIE insert indirect nocache #根據cookie輪詢
       server web01 10.6.76.27:1988 check inter 2000 fall 5
       server web02 10.6.76.28:1988 check inter 2000 fall 5
      #server web01 192.168.80.102:80 cookie web01 check inter 2000 fall 5
      #server web02 192.168.80.103:80 cookie web01 check inter 2000 fall 5
      # https://www.cnblogs.com/yangliheng/p/5852494.html

 

啟動

 

測試

 

haproxy分發成功了

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM