haproxy+keepalived负载均衡之主备切换(centos)

2020-01-30 13:14:15于丽

option httplog
option dontlognull
option forwardfor
option redispatch
option abortonclose
frontend http-www
bind 192.168.1.100:80
acl ha_policy hdr_reg(host) -i ^(www.test-haproxy.com|test-haproxy.com|demo.test-haproxy.com|www.hellobaby.com)
acl ha_baby hdr_dom(host) -i hellobaby.com
use_backend ha_www if ha_policy
use_backend ha_www if ha_baby
log 127.0.0.1 local0 info
listen admin_status
bind 192.168.1.100:1080
mode http
log 127.0.0.1 local0 info
stats uri /admin?status
stats refresh 30s
stats realm Haproxy Admin Center
stats auth admin:admin
stats hide-version
backend ha_www
mode http
balance source
cookie SERVERID
option httpchk HEAD /index.html
server w1 192.168.1.235:80 cookie 1 check inter 1500 rise 3 fall 3 weight 1
server w2 192.168.1.236:85 cookie 1 check inter 1500 rise 3 fall 3 weight 2
(2)、haproxy启却脚本 haproxy.sh

#!/bin/sh
#
# chkconfig: - 85 15
# description: HA-Proxy is a TCP/HTTP reverse proxy which is particularly
# suited for high availability environments.
#
# processname: haproxy
# config: /usr/local/haproxy/conf/haproxy.cfg
# pidfile: /var/run/haproyx.pid
#

# Source function library.
if [ -f /etc/init.d/functions ]; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ]; then
. /etc/rc.d/init.d/functions
else
exit 0
fi

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up
[ ${NETWORKING} = "no" ] && exit 0

[ -f /usr/local/haproxy/conf/haproxy.cfg ] || exit 1

RETVAL=0

# start Haproxy
start() {
/usr/local/haproxy/sbin/haproxy -c -q -f /usr/local/haproxy/conf/haproxy.cfg
if [ $? -ne 0 ]; then
echo "Errors found in configuration file."
return 1
fi

echo -n "Starting Haproxy: "
daemon /usr/local/haproxy/sbin/haproxy -D -f /usr/local/haproxy/conf/haproxy.cfg -p /var/run/haproxy.pid
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/haproxy
return $RETVAL
}

# stop Haproxy
stop() {
echo -n "Shutting down Haproxy: "
killproc haproxy -USR1
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/haproxy
[ $RETVAL -eq 0 ] && rm -f /var/run/haproxy.pid
return $RETVAL
}

# restart Haproxy
restart() {
/usr/local/haproxy/sbin/haproxy -c -q -f /usr/local/haproxy/conf/haproxy.cfg
if [ $? -ne 0 ]; then
echo "ERR found in configuration file, check it with 'haproxy check'."
return 1
fi
stop
start
}

# check haproxy
check() {
/usr/local/haproxy/sbin/haproxy -c -q -V -f /usr/local/haproxy/conf/haproxy.cfg