环境:
准备两台机子,安装haproxy及keepalive都一样,只是配置不一样而已。
这里只说明一台机子上安装haproxy及keepalive。
======================================
一、keepalived安装配置
mkidr /application/tool -p
cd /application/tool
wget http://www.keepalived.org/software/keepalived-1.1.19.tar.gz
yum -y install popt-devel
uname -a ;过滤查看内涵版本
ln –s/usr/src/kernels/2/6.32… /usr/src/linux
tar xf keepalived-1.1.19.tar.gz
cd keepalived-1.1.19
./configure --sysconf=/etc
cp /usr/local/sbin/keepalived /usr/bin/
#vim /etc/keepalived/keepalived.conf
=====配置如下===
! Configuration File for keepalived
global_defs {
smtp_connect_timeout 30
router_id LVS_1 ;每台机子route_id不一样;备机上id不一样
}
vrrp_instance VI_1 { ;相面的实例保持一致;备机上保持一致
state MASTER ;定义类型为主 ; 备机状态为BACKUP
interface eth0 ; 监听哪个IP接口 ; 根据备机实际接口
virtual_router_id 55 ; 相同实例保持一致; 备机保持一致
priority 150 ; 优先级越高,就成为主状态。优先提供服务。; 备机优先级不能高于主。
advert_int 1 ; 隔一秒发送一次报文
authentication { ; 相同实例的认证方式; 备机保持一致
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { ; VIP的地址,相同实例保持一致; 备机保持相同
192.168.0.253/24
}
}
=====配置结束======
#/etc/init.d/keepalived start
#ip add |grep 192.168.0.253 ;如果有地址显示,说明第一台主配置正确。
备机上只要做如上相同步骤,不同配置即可。
注:备机上通过ip add |grep 192.168.0.253是没有地址显示的,这是正常现象,只有当主的宕机了才会在备机有这个VIP地址。
============================================
二、haproxy配置
mkdir /application/tool
cd /application/tool
wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.24.tar.gz
tar xf haproxy-1.4.24.tar.gz
cd haproxy-1.4.24
make TARGET=linux26 ARCH=x86_64
make PREFIX=/application/haproxy install
sed -i "s#net.ipv4.ip_forward=0# net.ipv4.ip_forward=1#g"
sysctl -p
cd /application/haproxy
mkdir -p bin conf logs var/run var/chroot
#vim conf/haproxy.conf
================配置如下==============
global
chroot /application/haproxy/var/chroot ;定义一个安全目录
daemon ; daemon模式启动
group haproxy ;用户及组
user haproxy
log 127.0.0.1:514 local0 warning ; 日志类型
pidfile /application/haproxy/var/run/haproxy.pid ;pid路径
maxconn 20000 ;最大连接数
spread-checks 3
nbproc 4 ; 进程数,根据CUP核数指定
defaults
log global
retries 3
option redispatch
contimeout 5000
clitimeout 50000
srvtimeout 50000
stats enable ;开启状态查看工程
stats uri /admin?status ; 定义usr地址
stats auth admin:admin ; 用户名及密码
listen pet_ebk_push ; 定义一个listen,相当一个实例。
bind 192.168.0.253:8080 ; 监听的地址,这里注意和keepalived的VIP地址保持一致。
mode tcp ;四层tcp模式,端口检测。
balance roundrobin ; 轮询算法
#option forwardfor
timeout server 15s
timeout connect 15s
server web01 192.168.0.176:8080 check port 8080 inter 1000 fall 1
server web02 192.168.0.176:8081 check port 8081 inter 1000 fall 1 ;当访问本机的192.168.0.253:8080端口时,实际上是由这台haproxy机子帮我们代理找后面0.176这台机子请求数据,并将请求到的结果返回给用户。之后后端要监听哪些直接添加即可。
===========配置结束=============================
注:另外一台haproxy安装和配置完全相同,无差异。
到此keepalived+haproxy的配置到些结束,如想知道更多,请自行翻阅资料。(功能非常强大)