haproxy+keepalived配置
#==============================================haproxy.cfg============================================
#此配置為haproxy透傳前端IP地址到後端的配置
#==================================================================================================
global #全域性屬性
log 127.0.0.1 local0 info
#以daemon方式在後臺執行
daemon
#HAProxy啟動時作為守護執行可建立的程序數,
#配合daemon引數使用,預設只啟動一個程序,該值應小於cpu核數。
nbproc 1
#最大同時*連線
maxconn 102400
#指定儲存HAProxy程序號的檔案
pidfile /var/lib/haproxy/haproxy.pid
#定義統計資訊儲存位置
stats socket /var/lib/haproxy/stats
defaults #預設引數
#tcp/http模式
mode tcp
retries 3
#連線server端超時5s
timeout connect 5s
#客戶端響應超時50s
timeout client 300s
#server端響應超時50s
timeout server 300s
#設定對後端伺服器檢測超時時間,即心跳50s
timeout check 300s
#source 0.0.0.0 usesrc clientip
#前端服務tcp-in
frontend my-tcp-in
mode tcp
#監聽埠
bind 0.0.0.0:8443
log global
#請求轉發至名為"my-servers"的後端服務
default_backend my-servers
#後端服務servers
backend my-servers
#使用RR負載均衡演算法
balance roundrobin
server server1 10.92.4.148:8443 maxconn 10000 check inter 3000 rise 2 fall 3
#統計web頁面配置, frontend和backend的組合體, 監控組的名稱可按需自定義
listen admin_status
#配置監控執行模式
mode http
#配置統計頁面訪問埠
bind 0.0.0.0:1080
#統計頁面預設最大連線數
maxconn 10
log 127.0.0.1 local0 err
#開啟統計
stats enable
#監控頁面自動重新整理時間
stats refresh 30s
#統計頁面訪問url
stats uri /stats
#統計頁面密碼框提示文字
stats realm welcome login\ Haproxy
#監控頁面的使用者和密碼:admin, 可設定多個使用者名稱
stats auth admin:admin
#手工啟動/禁用後端伺服器, 可通過web管理節點
stats admin if TRUE
#===========================================keepalived_master.conf=====================================
! Configuration File for keepalived
global_defs {
notification_email {
[email protected]
}
notification_email_from [email protected]
smtp_server 192.168.133.4
smtp_connect_timeout 30
router_id LVS_DEVEL
}
#HAProxy健康檢查配置
vrrp_script chk_haproxy {
#使用killall -0檢查haproxy例項是否存在,效能高於ps命令
script "killall -0 haproxy"
interval 2 #指令碼執行週期
weight 2 #每次檢查的加權權重值
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 160
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.92.52.200
}
track_interface {
eth0
}
track_script {
chk_haproxy
}
}
#==============================================keepalived_slave.conf================================
! Configuration File for keepalived
global_defs {
notification_email {
[email protected]
}
notification_email_from [email protected]
smtp_server 192.168.133.4
smtp_connect_timeout 30
router_id LVS_DEVEL
}
#HAProxy健康檢查配置
vrrp_script chk_haproxy {
#使用killall -0檢查haproxy例項是否存在,效能高於ps命令
script "killall -0 haproxy"
interval 2 #指令碼執行週期
weight 2 #每次檢查的加權權重值
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.92.52.200
}
track_interface {
eth0
}
track_script {
chk_haproxy
}
}
#================================================iptable設定=======================================
#!/bin/bash
/sbin/iptables -F
/sbin/iptables -t mangle -N DIVERT
/sbin/iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT
/sbin/iptables -t mangle -A DIVERT -j MARK --set-mark 1
/sbin/iptables -t mangle -A DIVERT -j ACCEPT
/sbin/ip rule add fwmark 1 lookup 100
/sbin/ip route add local 0.0.0.0/0 dev lo table 100
#============================================check_haproxy.sh=========================================
#!/bin/bash
ret=`ps -C haproxy --no-header | wc -l`
#if [ $ret -eq 0 ];then
# /etc/init.d/haproxy start
# sleep 3
if [ `ps -C haproxy --no-header | wc -l ` -eq 0 ];then
/etc/init.d/keepalived stop
fi
#fi