keepalived + nginx 实现负载均衡
keepalived 用途
keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换。
Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,
并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,
这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器
环境说明:centos6
192.168.1.102(keepalived ==> nginx) master
192.168.1.132(keepalived ==> nginx) slave
192.168.1.100 虚拟ip
102安装如下:
首先安装keepalived
下载地址:http://www.keepalived.org/download.html
Keepalived for Linux - Version 1.2.7 - August 29, 2012
下载到文件:keepalived-1.2.7.tar.gz
1.tar -xzvf keepalived-1.2.7.tar.gz
2.
cd keepalived-1.2.7
./configure --prefix=/home/soft/keepalived
错误1:
configure: error:
!!! OpenSSL is not properly installed on your system. !!!
!!! Can not include OpenSSL headers files. !!!
解决:yum -y install openssl-devel
错误2:
configure: error: Popt libraries is required
解决:yum install popt-devel
如果编译成功:
Keepalived configuration
------------------------
Keepalived version : 1.2.7
Compiler : gcc
Compiler flags : -g -O2
Extra Lib : -lpopt -lssl -lcrypto
Use IPVS Framework : Yes
IPVS sync daemon support : Yes
IPVS use libnl : No
Use VRRP Framework : Yes
Use VRRP VMAC : Yes
SNMP support : No
Use Debug flags : No
make
提示:
Make complete
make[1]: Leaving directory `/home/soft/source/keepalived-1.2.7/genhash'
make install
3. 配置keepalived
cp /home/soft/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp /home/soft/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
mkdir /etc/keepalived
cp /home/soft/keepalived/sbin/keepalived /usr/sbin/
vi /etc/keepalived/keepalived.conf
global_defs {
notification_email {
[email protected]
}
notification_email_from [email protected]
smtp_server smtp.163.com
# smtp_connect_timeout 30
router_id LVS_DEVEL
}
# VIP1
vrrp_instance VI_1 {
state MASTER #备份服务器上将MASTER改为BACKUP
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 51
priority 100 # 备份服务上将100改为90
advert_int 5
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.102
#(如果有多个VIP,继续换行填写.)
}
}
virtual_server 192.168.1.102 80 {
delay_loop 6 #(每隔10秒查询realserver状态)
lb_algo wlc #(lvs 算法)
lb_kind DR #(Direct Route)
persistence_timeout 60 #(同一IP的连接60秒内被分配到同一台realserver)
protocol TCP #(用TCP协议检查realserver状态)
real_server 192.168.1.132 80 {
weight 100 #(权重)
TCP_CHECK {
connect_timeout 10 #(10秒无响应超时)
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.1.133 80 {
weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
4.service keepalived start|stop
5.启动keepalived!,查看虚拟IP是否绑定!
ip addr
6.nginx源码安装 看 nginx/nginx源码安装.txt
102配置完成
--------------------------------------
下面配置132
安装keepalived 如上:
vi /etc/keepalived/keepalived.conf 这里有变动,具体内容如下:
global_defs {
notification_email {
[email protected]
}
notification_email_from [email protected]
smtp_server smtp.163.com
# smtp_connect_timeout 30
router_id LVS_DEVEL_2
}
# VIP1
vrrp_instance VI_1 {
state BACKUP #备份服务器上将MASTER改为BACKUP
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 51
priority 90 # 备份服务上将100改为90
advert_int 5
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100
#(如果有多个VIP,继续换行填写.)
}
}
virtual_server 192.168.1.100 80 {
delay_loop 6 #(每隔10秒查询realserver状态)
lb_algo wlc #(lvs 算法)
lb_kind DR #(Direct Route)
persistence_timeout 60 #(同一IP的连接60秒内被分配到同一台realserver)
protocol TCP #(用TCP协议检查realserver状态)
real_server 192.168.1.102 80 {
weight 100 #(权重)
TCP_CHECK {
connect_timeout 10 #(10秒无响应超时)
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.1.132 80 {
weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
同样安装nginx
--------------------------
测试:102上执行 service keepalived stop
检测132是否接替任务
keepalived + nginx实现负载均衡
猜你喜欢
转载自yangchunhe.iteye.com/blog/1757197
周排行