如何搭建高可用架构(二)--Nginx双机主备(Keepalived实现)
来源:互联网 发布:淘宝上手机充值 编辑:程序博客网 时间:2024/06/06 00:45
如何搭建高可用架构(二)–Nginx双机主备(Keepalived实现)
标签(空格分隔): 高可用架构
在上篇介绍Nginx的基本知识,搭建了最基础的Nginx架构,如下:
这个架构中,可以满足小并发的网站请求,但如果说Nginx服务器出现宕机,那整个网站都会处于瘫痪状态,所以我们想到是否可以使用多台Nginx实现主备切换呢?如何实现?使用Keepalive实现心跳检测。
什么是Keeplived
简介参考:http://blog.51cto.com/freeloda/1280962
keepalived是VRRP协议的完美实现,主要是用来避免单点故障实现心跳检测
如何安装keepalived
1、安装环境
su - rootyum -y install kernel-devel*yum -y install openssl-*yum -y install popt-develyum -y install lrzszyum -y install openssh-clientsyum -y install libnl libnl-devel popt
2、安装keepalived
2.1、上传keepalived安装文件
cd /usr/local/src/ mkdir keepalivedcd keepalived/wget http://www.keepalived.org/software/keepalived-1.2.15.tar.gz或者rz 上传
2.2、解压
tar -xvf keepalived-1.2.15.tar.gzcd keepalived-1.2.15
2.3、安装keepalived
cd keepalived#执行配置命令./configure#编译make##安装make install##拷贝执行文件到/usr/sbin/下cp /usr/local/sbin/keepalived /usr/sbin/##将init.d文件拷贝到etx下加入网卡配置cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/ ##创建keepalived文件夹mkdir -p /etc/keepalived##将keepalived配置文件拷贝到etc下cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf##添加可执行权限chmod +x /etc/init.d/keepalived
2.4、加入开机启动
chkconfig --add keepalivedchkconfig keepalived on
3、配置日志文件
3.1 将keepalived日志输出到local0
vi /etc/sysconfig/keepalivedKEEPALIVED_OPTIONS="-D -d -S 0"
3.2 在/etc/rsyslog.conf里添加
local0.* /var/log/keepalived.log
3.3 重新启动keepalived和rsyslog服务
service rsyslog restart service keepalived restart
4、打开防火墙的通讯地址
iptables -A INPUT -d 224.0.0.18 -j ACCEPT/etc/rc.d/init.d/iptables save
配置keepalived监控Nginx
1.说明
由于keepalived本身只有监控自身的进程是否挂掉,如果机器并没有挂机。只是nginx挂了,那么keepalived是不会做切换主备操作的,所以我们需要编写一个监控nginx的脚本来监控nginx进程是否存在
2.编写脚本
#check_nginx.sh#!/bin/bash# 如果进程中没有nginx则将keepalived进程kill掉A=`ps -C nginx --no-header |wc -l` ## 查看是否有 nginx进程 把值赋给变量A if [ $A -eq 0 ];then ## 如果没有进程值得为 零 service keepalived stop ## 则结束 keepalived 进程fi
3.上传脚本
上传脚本check_nginx.sh到/etc/keepalived目录。
设置check_nginx.sh脚本可执行权限:
chmod 755 check_nginx.sh或者chmod +x check_nginx.sh
如果执行脚本出错,需要使用dos2unix工具转化下格式:
安装dos2unix:yum -y install dos2unix
使用:dos2unix check_nginx.sh
4.修改配置文件keepalived.conf
4.1定义监控脚本
vrrp_script check_nginx { script "/etc/keepalived/check_nginx.sh" ##监控脚本 interval 2 ##时间间隔,2秒 weight 2 ##权重}
4.2 在实例中加入启用监控
4.2.1在备机中配置
! Configuration File for keepalived#全局配置global_defs { notification_email { #指定keepalived在发生切换时需要发送email到的对象,一行一个 acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc #指定发件人 #smtp_server 192.168.200.1 #指定smtp服务器地址 #smtp_connect_timeout 30 #指定smtp连接超时时间 router_id LVS_DEVEL #运行keepalived机器的一个标识}vrrp_instance VI_1 { state BACKUP #标示状态为MASTER 备份机为BACKUP interface eth0 #设置实例绑定的网卡 virtual_router_id 51 #同一实例下virtual_router_id必须相同 priority 99 #MASTER权重要高于BACKUP 比如BACKUP为99 advert_int 1 #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒 authentication { #设置认证 auth_type PASS #主从服务器验证方式 auth_pass 8888 } virtual_ipaddress { #设置vip 192.168.0.55 #可以多个虚拟IP,换行即可 } track_script { check_nginx #监控脚本 }}
4.2.2在主机中配置
! Configuration File for keepalived#全局配置global_defs { notification_email { #指定keepalived在发生切换时需要发送email到的对象,一行一个 acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc #指定发件人 #smtp_server 192.168.200.1 #指定smtp服务器地址 #smtp_connect_timeout 30 #指定smtp连接超时时间 router_id LVS_DEVEL #运行keepalived机器的一个标识}vrrp_instance VI_1 { state MASTER #标示状态为MASTER 备份机为BACKUP interface eth0 #设置实例绑定的网卡 virtual_router_id 51 #同一实例下virtual_router_id必须相同 priority 100 #MASTER权重要高于BACKUP 比如BACKUP为99 advert_int 1 #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒 authentication { #设置认证 auth_type PASS #主从服务器验证方式 auth_pass 8888 } virtual_ipaddress { #设置vip 192.168.0.55 #可以多个虚拟IP,换行即可 } track_script { check_nginx #监控脚本 }}
整体架构图
双击主备的原理
架构总结
好处:
通过Keepalived解决Nginx单点故障的问题,实现主从切换
问题:
1、备机由于如果在未发生故障的情况下,一直处于闲置状态,造成资源浪费
2、主机在高负载的情况下运行,有一定的上限。
3、如果主备机都出现宕机。如何处理?
- 如何搭建高可用架构(二)--Nginx双机主备(Keepalived实现)
- CentOS7,keepalived搭建双机热备(高可用、keepalived、Nginx、Haproxy、反向代理)
- 如何搭建高可用架构(三)--Nginx双主热备(Keepalived实现)
- Nginx之Keepalived实现高可用(双机热备+自动切换)-yellowcong
- keepalived+nginx实现高可用双机热备+负载均衡架构
- keepalived+nginx实现双机热备的高可用
- keepalived + nginx实现高可用双机热备+负载均衡
- nginx+keepalived实现双机热备的高可用
- nginx+keepalived实现双机热备的高可用
- Keepalived+Nginx+Tomcat搭建高可用的Web服务(二):双主模式
- Keepalived+Nginx实现高可用(HA)
- Keepalived+Nginx实现高可用(HA)
- Keepalived+Nginx实现高可用(HA)
- Keepalived+Nginx实现高可用(HA)
- Nginx+Keepalived(双机热备)搭建高可用负载均衡环境(HA)
- 双机热备Nginx+Keepalived搭建HA高可用负载均衡环境
- 双机热备Nginx+Keepalived搭建HA高可用负载均衡环境
- Nginx + keepalived 实现高可用HA 【双主架构】
- 如何搭建高可用架构(一) --- Nginx
- 136. Single Number
- PySpark Recipes.pdf 2017 英文原版 免费下载
- 吴恩达再创业成立Landing.ai,实业兴邦!
- 你最大的敌人,是惯性思维
- 如何搭建高可用架构(二)--Nginx双机主备(Keepalived实现)
- Bootstrap(三十五)
- Application.mk的用處
- 如何搭建高可用架构(三)--Nginx双主热备(Keepalived实现)
- Pro Power BI Desktop, 2nd Edition.pdf 2017 英文原版 免费下载
- Android研究_Gralloc_3fb设备Open过程
- spring-mvc-jpa环境搭建
- ZOJ 1008 Gnome Tetravex (使用状态进行DFS)
- 欢迎使用CSDN-markdown编辑器