您的位置:首页 > 运维架构 > Nginx

NGINX+keepalived

2016-12-15 21:19 169 查看
参考博客: http://pmghong.blog.51cto.com/3221425/1264947/

第一步:配置NGINX负载均衡   http://www.cnblogs.com/carbon3/p/5853590.html

第二步:配置 keepalived 的高可用

二、安装配置keepalived(node2配置参考node1,大体上一样)

1、安装配置keepalived

[root@node1 src]# yum -y install popt popt-devel popt-static openssl-devel kernel-devel libnl libnl-devel

[root@node1 src]# wget http://www.keepalived.org/software/keepalived-1.2.23.tar.gz
[root@node1 src]# tar -zxvf keepalived-1.2.23.tar.gz
[root@node1 src]# cd keepalived-1.2.23
[root@node1 keepalived-1.2.23]# ./configure --prefix=/usr/local/keepalived
 

configure: error: 
!!! Please install libnfnetlink headers.
解决办法:

yum install -y libnfnetlink-devel
安装成功后显示:

Keepalived configuration
------------------------
Keepalived version       : 1.2.23
Compiler                 : gcc
Compiler flags           : -g -O2 -DFALLBACK_LIBNL1
Extra Lib                : -lssl -lcrypto -lcrypt  -lnl
Use IPVS Framework       : Yes
IPVS sync daemon support : Yes
IPVS use libnl           : Yes
fwmark socket support    : Yes
Use VRRP Framework       : Yes
Use VRRP VMAC            : Yes
Use VRRP authentication  : Yes
SNMP keepalived support  : No
SNMP checker support     : No
SNMP RFCv2 support       : No
SNMP RFCv3 support       : No
SHA1 support             : No
Use Debug flags          : No
Memory alloc check       : No
libnl version            : 1
Use IPv4 devconf         : No
Use libiptc              : No
Use libipset             : No


接着
 
[root@node1 keepalived-1.2.4]# make && make install
 

[root@node1 keepalived-1.2.4]# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
[root@node1 keepalived-1.2.4]# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
[root@node1 keepalived-1.2.4]# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@node1 keepalived-1.2.4]# mkdir -p /etc/keepalived
[root@node1 keepalived-1.2.4]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
[root@node1 keepalived-1.2.4]# chmod +x /etc/init.d/keepalived

 配置
[root@node1 keepalived-1.2.4]# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
notification_email {
carbon3@qq.com
}
notification_email_from carbon3@qq.com
smtp_server 192.168.128.128 # node2上改为192.168.128.129
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_nginx { # 定义监控脚本
script "/etc/keepalived/checkNginx.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER # node2 修改为BACKUP
interface eth0 #node2 可能是eth1 我在虚拟测试的时候就是 系统是克隆过来的。
virtual_router_id 51
priority 120 # node2上的数值应低于这个值,例如100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.128.120
}

track_script { # 执行监控脚本,这段代码一定要加!!否则不会调用上面的脚本
chk_nginx
}

}
 

2、创建检测脚本
[root@node1 keepalived-1.2.4]# vim /etc/keepalived/checkNginx.sh

#!/bin/bash
#auto check nginx process
killall -0 nginx
if [[ $? -ne 0 ]];then
/etc/init.d/keepalived stop
fi
 

[root@node1 keepalived-1.2.4]# chmod +x /etc/keepalived/checkNginx.sh
 
3、启动服务

[root@node1 ~]# service keepalived start
Starting keepalived: [ OK ]

[root@node2 ~]# service keepalived start
Starting keepalived: [ OK ]
主服务器:

[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:1c:5b:83 brd ff:ff:ff:ff:ff:ff
inet 192.168.128.128/24 brd 192.168.128.255 scope global eth0
inet 192.168.128.120/32 scope global eth0
inet6 fe80::20c:29ff:fe1c:5b83/64 scope link
valid_lft forever preferred_lft forever


从服务器 

[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:b1:0a:0b brd ff:ff:ff:ff:ff:ff
inet 192.168.128.129/24 brd 192.168.128.255 scope global eth1
inet6 fe80::20c:29ff:feb1:a0b/64 scope link
valid_lft forever preferred_lft forever


当主服务器挂了的话,从服务器就会接管VIP 用ip addr 查看的时候 就会出现 192.168.128.120 。当主服务器恢复的时候 VIP双会被主服务器接管。
 扩展阅读:http://zkchang.blog.51cto.com/10574636/1706998  
keepalived的 主从 和双主模式

双主的话 需要在域名供应商里 给那个域名设置两个IP 这样可以轮询 。这样 keepalived的两个VIP就起做用了。 http://www.cnblogs.com/holbrook/archive/2012/10/25/2738475.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux