版本:centos 5.11 64位 因公司服务器比较老,想要上线高可用,所以我虚拟机上测试也用这个版本
haproxy-1.3.20 keepalived-1.2.7
192.168.6.128 haproxy主
192.168.6.129 haproxy备
192.168.6.130 192.168.6.131 nginx
192.168.6.132 vip
在128,129上haproxy安装:
1、 tar zxvf haproxy-1.3.20.tar.gz
cd haproxy-1.3.20
make TARGET=linux26 prefix=/usr/local/haproxy #执行uname -a 获取linux内核
make install PREFIX=/usr/local/haproxy
2、 cd /usr/local/haproxy
vim haproxy.cfg
global
maxconn 51200
chroot /usr/local/haproxy
uid 99
gid 99
daemon
#quiet
nbproc 1 #进程数
pidfile /usr/local/haproxy/logs/haproxy.pid
defaults
mode http #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
#retries 2 #两次连接失败就认为是服务器不可用,也可以通过后面设置
option redispatch #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
timeout connect 5000ms #连接超时
timeout client 30000ms #客户端超时
timeout server 30000ms #服务器超时
#timeout check 2000 #=心跳检测超时
log 127.0.0.1 local0 err #[err warning info debug]
balance roundrobin #负载均衡算法
# option httplog #日志类别,采用httplog
# option httpclose #每次请求完毕后主动关闭http通道,ha-proxy不支持keep-alive,只能模拟这种模式的实现
# option dontlognull
# option forwardfor #如果后端服务器需要获得客户端真实ip需要配置的参数,可以从Http Header中获得客户端ip
frontend HAPROXY
bind *:80
mode http
option httplog
default_backend www.web.com
#listen localhost 192.168.6.128:80
# mode http
# option httplog #采用http日志格式
# stats refresh 30s #统计页面自动刷新时间
# stats uri /stats #统计页面url
# stats realm Haproxy Manager #统计页面密码框上提示文本
# stats auth admin:admin #统计页面用户名和密码设置
# #stats hide-version #隐藏统计页面上HAProxy的版本信息
backend www.web.com
balance source
server web2 192.168.6.131:80 check inter 1500 rise 3 fall 3
server web3 192.168.6.130:80 check inter 1500 rise 3 fall 3
3、mkdir logs #用于记录pid,配置文件中有,不建会报错
#128,129上keepalived安装:
安装就是普通的源码安装过程
1、贴配置文件keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
15068715180@139.com
}
notification_email_from keepalived@web1.web1
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVA_DEVEL
}
vrrp_script chk_haproxy {
script "/etc/keepalived/check_haproxy.sh"
interval 5
}
vrrp_instance VI_1 {
state MASTER
interface eth0
mcast_src_ip 192.168.6.128
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 10086
}
track_script {
chk_haproxy
}
virtual_ipaddress {
192.168.6.132
}
}
2、check_haproxy.sh脚本
#!/bin/bash
A=`ps -C haproxy --no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
sleep 3
if [ `ps -C haproxy --no-header |wc -l` -eq 0 ];then
/etc/init.d/keepalived stop
fi
fi
脚本记得给权限
nginx的安装配置就不贴了!
下一篇:haproxy+keepalived+rabbitmq集群
本文出自 “9400142” 博客,请务必保留此出处http://9410142.blog.51cto.com/9400142/1656232
原文地址:http://9410142.blog.51cto.com/9400142/1656232