解压软件包
tar -xzvf haproxy-1.4.11.tar.gz
查看系统信息
uname -a
cd haproxy-1.4.11
make TARGET=linux26 ARCH=x86_64
make install
mkdir /etc/haproxy
cp examples/haproxy.cfg /etc/haproxy/
cp examples/haproxy.init /etc/init.d/haproxy
chmod +x /etc/init.d/haproxy
ln -s /usr/local/sbin/haproxy /usr/sbin/
以上就安装步凑
下面修改配置文件
vim haproxy.cf
# this config needs haproxy-1.1.28 or haproxy-1.2.1
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 4096
chroot /usr/share/haproxy
uid 500注意这里表示运行的用户id和组id
gid 500
daemon
#debug
#quiet
以上是全局配置
defaults
log global
mode http
option httplog
option dontlognull
option redispatch
option abortonclose
retries 2
option redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
timeout check 5s
stats refresh 30s
stats uri /stats状态查看的根目录
stats realm yys-test-Haproxy
stats auth admin:admin这里就是haproxy状态网页用户名和密码
listen appli1-rewrite 0.0.0.0:80
cookie SERVERID rewrite
balance roundrobin采用轮询方式
server app1_1 192.168.1.200:80 cookie app1inst1 check inter 2000 rise 2 fall 5 设置后端
server app1_2 192.168.1.201:80 cookie app1inst2 check inter 2000 rise 2 fall 5设置后端
下面配置keepalived
vim keepalived.conf
vrrp_script chk_http_port {
script "/opt/check_haproxy.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER # master
interface eth0
virtual_router_id 50 # unique, but master and backup is same
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass uplooking
}
track_script {
chk_http_port
}
virtual_ipaddress {
192.168.1.250 # vip
}
}
检测脚本,为了防止haproxy服务关闭导致keepalived不自动切换
Vim /opt/check_haproxy.sh
#!/bin/bash
if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then
/etc/init.d/haproxy start
fi
sleep 2
if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then
/etc/init.d/keepalived stop
Fi
Ma1和ma2都是这样配置
现在启动ha1和ha2的web服务
访问网页
测试:关闭任意一台keepalived
关闭前
关闭ma1的keepalived的
访问网页
不会影响访问
现在关闭任意一台web服务
现在就只会访问到ha2的网页
查看haproxy状态页面
访问任意一个haproxy的地址
192.168.1.203/stats
这里就看到haproxy的一些信息
当我恢复ha1的httpd的时候
可以看到恢复的状态和信息