haproxy1.7編譯安裝配置


#haproxy1.7編譯安裝配置
#高可用、負載均衡 使用

 

#haproxy1.7編譯安裝配置
#centos7 x86_64
#高可用、負載均衡 使用

#下載
#http://www.haproxy.org/download/1.7/src/haproxy-1.7.8.tar.gz
#cd /data/nfs/download
#yum install gcc gcc-c++ autoconf automake -y

#安裝haproxy
Hadir=/www/server/haproxy #安裝目錄
mkdir -p $Hadir
tar -axf haproxy-* && cd ./haproxy-*
make TARGET=linux2628 ARCH=x86_64 PREFIX=$Hadir
make install PREFIX=$Hadir
$Hadir/sbin/haproxy -v

#增加用戶
useradd -s /sbin/nologin -M haproxy
id haproxy

#內核優化
# #NAT轉發
# sed -i 's@net.ipv4.ip_forward = 0@net.ipv4.ip_forward = 1@g' /etc/sysctl.conf
# grep ip_forward /etc/sysctl.conf
echo "net.ipv4.ip_nonlocal_bind = 1" >>/etc/sysctl.conf #允許沒監聽IP時啟動
sysctl -p

#啟動腳本配置
cp ./examples/haproxy.init $Hadir/haproxy
chmod 755 $Hadir/haproxy
sed -i '/^BIN=/cBIN='$Hadir'/sbin/$BASENAME' $Hadir/haproxy
sed -i '/^CFG=/cCFG='$Hadir'/$BASENAME.cfg' $Hadir/haproxy

#日志配置
sed -i 's/^#$ModLoad imudp/$ModLoad imudp/g' /etc/rsyslog.conf
sed -i 's/^#$UDPServerRun 514/$UDPServerRun 514/g' /etc/rsyslog.conf
echo 'local0.* /var/log/haproxy.log'>>/etc/rsyslog.conf #添加haproxy日志路徑
systemctl restart rsyslog


#生成配置文件
echo "

###########全局配置#########
    global
    log 127.0.0.1 local0
    log 127.0.0.1 local1 notice
    daemon
    #nbproc 1     #進程數量 
    maxconn 4096  #最大連接數 
    user haproxy  #運行用戶  
    group haproxy #運行組 
    chroot /var/lib/haproxy
    pidfile /var/run/haproxy.pid
########默認配置############
    defaults
    log global
    mode http            #默認模式{ tcp|http|health }
    option httplog       #日志類別,采用httplog
    option dontlognull   #不記錄健康檢查日志信息  
    retries 2            #2次連接失敗不可用
    option forwardfor    #后端服務獲得真實ip
    option httpclose     #請求完畢后主動關閉http通道
    option abortonclose  #服務器負載很高,自動結束比較久的鏈接  
    maxconn 4096         #最大連接數  
    timeout connect 5m   #連接超時  
    timeout client 1m    #客戶端超時  
    timeout server 31m   #服務器超時  
    timeout check 10s    #心跳檢測超時  
    balance roundrobin   #負載均衡方式,輪詢 
########統計頁面配置########
    listen stats  
    bind 0.0.0.0:1080 
    mode http
    option httplog
    log 127.0.0.1 local0 err 
    stats refresh 30s
    maxconn 10               #最大連接數  
    stats uri /admin         #狀態頁面 http//ip:1080/admin訪問  
    stats realm Haproxy\ Statistics
    stats auth admin:admin   #用戶和密碼:admin
    stats hide-version       #隱藏版本信息  
    stats admin if TRUE      #設置手工啟動/禁用
  
########設置haproxy 錯誤頁面#####  
    #errorfile 403 /opt/haproxy/errorfiles/403.http  
    #errorfile 500 /opt/haproxy/errorfiles/500.http  
    #errorfile 502 /opt/haproxy/errorfiles/502.http
    errorloc 503 https://www.baidu.com/
    #errorfile 504 /opt/errorfiles/504.http  
  
########frontend前端配置##############  
    frontend http_main
    bind *:80
    option forwardfor
    acl web hdr(host) -i elven.win  #acl規則,-i忽略大小寫,訪問*就觸發web規則
    use_backend web1 if web
    
    acl web_kvm path_beg -i /kvm
    use_backend kvm if web_kvm
        
    default_backend web1 #不滿足則響應的默認頁面  

########backend后端配置##############  
    backend web1 #www1作用域  service haproxy restart
    cookie   SERVERID
    balance roundrobin
    option httpchk HEAD /index.html HTTP/1.0
    server web1 192.168.20.81:80 weight 1 check inter 2000 rise 2 fall 3  
    server web2 192.168.18.12:80 weight 1 check inter 2000 rise 2 fall 3  
    
    backend kvm
    server kvm1 127.0.0.1:8000
    
">$Hadir/haproxy.cfg
chown -R haproxy:haproxy $Hadir/

#啟動
/www/server/haproxy/haproxy start
netstat -antp|grep haproxy
ps -ef|grep haproxy

#添加自啟動
ln -sf /www/server/haproxy/haproxy /etc/init.d/haproxy
chkconfig --add haproxy
chkconfig haproxy on
chkconfig --list haproxy
service haproxy restart

#查看監控
http://ip:1080/admin
#cat /var/log/haproxy.log

##啟動報錯 第 26 行:[: =: 期待一元表達式,[]里的變量用加上引號“”
#修改為如下:
 [ "${NETWORKING}" = "no" ] && exit 0

 


免責聲明!

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



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