#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
