keepalived+nginx(主从模式)
2017-07-21 11:32
405 查看
1.搭建keepalived+nginx
实现双机热备+负载均衡(主从模式)lb-01:172.21.3.186 nginx+keepalived-master
lb-02:172.21.3.187 nginx+keepalived-backup
VIP:172.21.3.194
2.下载安装软件
分别在两台主机172.21.3.186,172.21.3.187上安装依赖和下载安装包* 安装依赖包
# yum -y install gcc gcc+ gcc-c++ pcre-devel zlib-devel openssl-devel popt-devel
下载
keepalived安装包
# wget http://www.keepalived.org/software/keepalived-1.1.17.tar.gz
下载
nginx安装包
# wget http://nginx.org/download/nginx-1.8.1.tar.gz[/code]3.安装nginx
2台主机都使用默认配置进行安装
* 解压# tar -zxvf ./nginx-1.8.1.tar.gz
安装软件
注:源码的安装一般由3个步骤组成:配置configure、编译make、安装make install# cd ./nginx-1.8.1 # ./configure && make && make install # whereis nginx #可查看安装目录
运行nginx# cd /usr/local/nginx/sbin/ # ./nginx
测试nginx是否正常启动# curl http://172.21.3.186 | grep nginx <title>Welcome to nginx!</title>4.安装keepalived
解压# tar -zxvf ./keepalived-1.1.17.tar.gz
安装# cd ./keepalived-1.1.17 # ./configure --prefix=/usr/local/keepalived # make && make install
添加配置文件、设置keepalived为自启服务# mkdir /etc/keepalived # cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf # cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ # cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ # cp /usr/local/keepalived/sbin/keepalived /usr/sbin/ # chkconfig --level 2345 keepalived on
修改配置文件
配置172.21.3.186文件(Master):# vim /etc/keepalived/keepalived.conf #修改配置文件 ! Configuration File for keepalived global_defs { router_id NGINX_DEMO } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 101 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.21.3.194 } }
修改172.21.3.187文件(Backup):# vim /etc/keepalived/keepalived.conf #修改配置文件 ! Configuration File for keepalived global_defs { router_id NGINX_DEMO } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 99 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.21.3.194 } }
启动服务# service keepalived start
使用ip addr检查虚拟ip# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 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 mq state UP qlen 1000 link/ether 00:0c:29:04:89:2c brd ff:ff:ff:ff:ff:ff inet 172.21.3.186/24 brd 172.21.3.255 scope global eth0 inet 172.21.3.194/32 scope global eth0 #看这里,已经可以看到虚拟ip了 inet6 fe80::20c:29ff:fe04:892c/64 scope link valid_lft forever preferred_lft forever5.让keepalived监控nginx状态
经过前面的配置,如果master主服务的keepalived停止服务,slave从服务会自动接管VIP对外服务。一旦主服务器的keepalived恢复,会重新接管VIP。但这并不是我们需要的,我们需要当nginx停止服务的时候能自动切换。我们需要使用keepalived来运行监控脚本。
创建监听nginx状态脚本# vim /opt/chk_nginx.sh#!/bin/bash counter=$(ps -C nginx --no-heading|wc -l) if [ "${counter}" = "0" ]; then /usr/local/nginx/sbin/nginx sleep 2 counter=$(ps -C nginx --no-heading|wc -l) if [ "${counter}" = "0" ]; then /etc/init.d/keepalived stop fi fi# chmod 755 /opt/chk_nginx.sh
同时修改主从服务器上的keepalived配置文件! Configuration File for keepalived global_defs { router_id NGINX_DEVEL } vrrp_script chk_http_port { #检测nginx服务是否在运行。 script "/opt/chk_nginx.sh" #这里通过脚本监测 interval 2 #脚本执行间隔,每2s检测一次 weight -5 #脚本结果返回非零则优先级-5 fall 2 #监测连续失败2次,才算失败会用weight减少优先级 rise 1 #检测1次成功就算成功 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 101 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.21.3.194 } track_script { #执行监控的服务。 chk_http_port #引用VRRP脚本, } }6.测试
打开网址输入VIP地址就可以了
测试关闭172.21.3.186中的nginx服务# killall nginx
可以看到我们在keepalived中的监控脚本启动正常。
测试关闭172.21.3.186中的keepalived服务# killall keepalived
再次打开网址
说明我们配置热备成功。
相关文章推荐
- keepalived + nginx 主从模式实现高可用
- Nginx+keepalived双机热备(主从模式)
- 【Nginx】Tengine+Keepalived实现主从模式双机热备
- nginx + keepalived 实现HA 主从模式
- Nginx+keepalived双机热备(主从模式)
- Nginx+keepalived双机热备(主从模式)
- Nginx+keepalived双机热备(主从模式)
- Nginx+keepalived双机热备(主从模式)
- 利用LVS+keepalived的主从模式实现http的高可用性
- Keepalived Nginx 主从配置
- keepalived 非抢占模式 以及nginx状态监控
- Nginx+keepalived 脚本安装主从双机热备自动切换解决方案
- centos6.4下keepalived+nginx的高可用(LVS/DR模式)
- 基于keepalived主从模型实现Nginx的高可用
- 分别实现基于LVS-DR模式和LVS-NAT模式的keepalived的主从架构
- Nginx+Keepalived主从双机热备+自动切换
- Keepalived+Nginx+Tomcat搭建高可用的Web服务(一):主备模式
- centos6.4下keepalived+nginx的高可用(LVS/DR模式)
- 用RHEL6.4(64bit)Nginx+Keepalived实现Nginx进程的主从、双主高可用
- keepalived+nginx双机热备+负载均衡 非抢占模式