搭建Keepalived + Nginx + Tomcat 的主备架构

简单介绍:

Nginx 是HTTP反向代理服务器;
Keepalived 主要用来避免服务的单点故障;
Tomcat 轻量级web应用服务器。

架构拓扑图

请求逻辑图

搭建步骤

1、准备工作

系统:

centos7

软件:上传至 /usr/local 目录

1. apache-tomcat-8.5.24.tar.gz
2. nginx-1.12.2.tar.gz
3. keepalived-1.3.9.tar.gz

服务器:

192.168.201.130(Master)
192.168.201.131(Backup)

设置固定IP,必要的话,请自行百度

vim  /etc/sysconfig/network 

输入如下内容(131服务器类似)

DNS1=192.168.201.130
DNS2=8.8.8.8

重启网卡:

service network restart

2、安装依赖包

yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel open openssl-devel

如果出现错误:

Another app is currently holding the yum lock; waiting for it to exit…

可能是系统自动升级正在运行,yum在锁定状态中,但是kill有时候也杀不掉,那么执行以下命令后,再继续操作:

rm -f /var/run/yum.pid

3、Tomcat 安装

前提:tomcat压缩文件上传至指定位置:

#进入指定目录
cd /usr/local/
#查看所有文件
ls
#解压tomcat
tar -zxvf apache-tomcat-8.5.24.tar.gz
#进入tomcat-8.5.24/bin
cd apache-tomcat-8.5.24/bin
#启动tomcat
./startup.sh

如遇到权限不足,则输入su,接着输入密码即可

启动成功后,外网输入ip地址:8080,但是访问不了,则需要关闭防火墙:

#停止firewall
systemctl stop firewalld.service 
#禁止firewall开机启动
systemctl disable firewalld.service 
#查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
firewall-cmd --state 

默认端口号为:8080,浏览器访问:

192.168.201.130:8080
192.168.201.131:8080

3、Nginx 安装

#进入指定目录
cd /usr/local/
#查看所有文件
ls
#解压安装包
tar -zxvf nginx-1.12.2.tar.gz
#进入nginx-1.12.2目录
cd nginx-1.12.2
#执行编译
./configure --with-http_stub_status_module --with-http_ssl_module  --prefix=/usr/local/nginx
#执行安装
sudo make && sudo make install

修改Nginx配置文件

vi /usr/local/nginx/conf/nginx.conf

内容如下:

#nginx进程数
worker_processes  1;

#单个进程最大连接数
events {
    worker_connections  1024;
}

#http服务器配置
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    #长连接超时时间,单位是秒
    keepalive_timeout  65;
    #upstream负载均衡配置,配置路由到tomcat的服务地址以及权重
    #上线后,在130服务器上启动多个实例,upstream配置本机多个实例
    upstream localhost{
       server 192.168.201.130:8080 weight=2;
       server 192.168.201.131:8080 weight=2;
    }
    
    #虚拟主机的配置
    server {
        #监听端口
        listen       80;
        #域名可以有多个,用空格隔开
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
            #nginx跟后端服务器连接超时时间(代理连接超时)
            proxy_connect_timeout 3;
            #后端服务器数据回传时间(代理发送超时)
            proxy_send_timeout 30;
            #连接成功后,后端服务器响应时间(代理接收超时)
            proxy_read_timeout 30;
            proxy_pass http://localhost;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

配置完成后,启动Nginx

#进入指定目录
cd /usr/local/nginx/sbin
#验证nginx配置文件是否正确
./nginx -t   
#出现 nginx.conf test is successful 则表示成功
#启动nginx
./nginx
#重启nginx
./nginx -s reload
#查看nginx进程
ps -ef|grep nginx

4、Keepalived 安装

#进入指定目录
cd /usr/local/
#查看所有文件
ls
#解压安装包
tar -zxvf keepalived-1.3.9.tar.gz
#进入keepalived-1.3.9目录
cd keepalived-1.3.9
#执行编译
./configure --prefix=/usr/local/keepalived --sysconf=/etc
#执行安装
sudo make && sudo make install
#检查一下/etc/keepalived 下有没有配置文件,如果没有,可手动创建
vim /etc/keepalived/keepalived.conf

Master 配置文件:

global_defs {
    #hostname
    router_id nginx_master 
}
vrrp_script chk_nginx {
    #检测nginx的脚本
    script "/home/keepalived/nginx_check.sh" 
    #每2秒检测一次
    interval 2    
    #如果某一个nginx宕机 则权重减20                          
    weight -20                                                          
}
vrrp_instance VI_1 {
    #状态 MASTER BACKUP
    state MASTER                                                        
    #绑定的网卡
    interface ens33     
    #虚拟路由的ID号,两个节点设置必须一样                               
    virtual_router_id 51      
    #本机的IP              
    mcast_src_ip 192.168.201.130         
    priority 90
    advert_int 1
    # 设置验证信息,两个节点必须一致
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    # 虚拟IP,两个节点设置必须一样。
    virtual_ipaddress {
        192.168.201.222
    }
    # nginx存活状态检测脚本
    track_script {
        chk_nginx
    }
}    

Backup配置文件:

global_defs {
    #hostname
    router_id nginx_backup 
}
vrrp_script chk_nginx {
    #检测nginx的脚本
    script "/home/keepalived/nginx_check.sh" 
    #每2秒检测一次
    interval 2     
    #如果某一个nginx宕机 则权重减20                         
    weight -20                                                          
}
vrrp_instance VI_1 {
    #状态 MASTER BACKUP
    state BACKUP                            
    #绑定的网卡
    interface ens33     
    #虚拟路由的ID号,两个节点设置必须一样                               
    virtual_router_id 51      
    #本机的IP              
    mcast_src_ip 192.168.201.131         
    priority 90
    advert_int 1
    # 设置验证信息,两个节点必须一致
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    # 虚拟IP,两个节点设置必须一样。
    virtual_ipaddress {
        192.168.201.222
    }
    # nginx存活状态检测脚本
    track_script {
        chk_nginx
    }
}    

创建Nginx服务检测脚本

/home/keepalived/nginx_check.sh
#!/bin/bash
A=`ps -C nginx --no-header | wc -l`
if [ $A -eq 0 ];then
    #尝试重新启动nginx
    /usr/local/nginx/sbin/nginx 
    #睡眠2秒
    sleep 2  
    if [ `ps -C nginx --no-header | wc -l` -eq 0 ];then
        #启动失败,将keepalived服务杀死。将vip漂移到其它备份节点
        killall keepalived 
    fi
fi

配置开机自启

cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/keepalived
#添加到开机自启
chkconfig keepalived on

配置完成后,启动keepalived

#启动Keepalived服务
service keepalived start
#然后再Master机器上查看VIP地址
ip addr
Master机器,可以查看到虚拟IP:192.168.201.222绑定在了ens33(正常为eth0)上;
Backup机器,则没有虚拟ip。

如果启动出现错误,则先排除是否应权限不足引起后,其余问题多半出现在keepalived.conf

测试

1、正常情况

访问虚拟IP(192.168.201.222:80)
能访问指定服务,即访问 master

> 192.168.201.222:80 (vip,keepalived)
> 192.168.201.130:80(nginx)
> 192.168.201.130:8080(nginx配置的tomcat服务中的其中一个)

2、异常情况

访问虚拟IP(192.168.201.222:80)
master服务异常,即访问 backup

> 192.168.201.222:80 (vip,keepalived)
> 192.168.201.131:80(nginx)
> 192.168.201.131:8080(nginx配置的tomcat服务中的其中一个)

采用监控手段,获取服务器异常报警,及时修复后,启动tomcat服务、nginx服务、keepalived服务,则vip访问将自动切换回master。

补充

需要考虑session同步的问题

命令汇总

#启动tomcat,进入 /usr/local/tomcat-8.5.24/bin
./startup.sh

#重启nginx,进入/usr/local/nginx/sbin目录
./nginx -s reload

#刷新systemctl配置
systemctl daemon-reload
#停止keepalived服务
service keepalived stop
#启动keepalived服务
service keepalived start
#重启keepalived服务
service keepalived restart
#查看keepalived进程
ps -aux |grep keepalived  
#修改keepalived配置文件
vim /etc/keepalived/keepalived.conf

 

以上内容均来自于百度,但确实是经过自己实践所得,希望让大家能够更简单的使用此架构。

 

参考1: https://my.oschina.net/feinik/blog/1590941
参考2: https://my.oschina.net/xshuai/blog/917097

转载于:https://my.oschina.net/gmarshal/blog/1595468

weixin_33971977
关注 关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
keepalived+nginx+tomcat+redis+mysql所需的包
03-08
keepalived+nginx+tomcat+redis+mysql所需的包,里面包含了三个tomcat与Redis做session共享的jar,编译安装Mysql所需要Boost库和Cmake的包。
keepalived+Nginx+tomcat 搭建集群
08-26
keepalived+Nginx+tomcat 搭建集群,实现高并发、高负载体系架构,具备我们平时说的第3层、第4层和第7层交换机的功能。主要提供loadbalancing(负载均衡)和 high-availability(高可用)功能,负载均衡实现需要依赖...
搭建Keepalived + Nginx + Tomcat的高可用负载均衡架构
weixin_33725239的博客
12-16 207
为什么80%的码农都做不了架构师?>>> ...
Keepalived + Nginx + Tomcat 的高可用负载均衡架构搭建
weixin_33728708的博客
12-20 79
Keepalived + Nginx + Tomcat 的高可用负载均衡架构搭建 Nginx 是一个高性能的 HTTP反向代理服务器 Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以利用其来避免服务的单点故障 Tomcat 是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器。 所需下载: jdk-8u151-linux-x64.rpm ...
Keepalived+Nginx+tomcat实现主备+负载
05-29 189
部署系统: Red Hat Enterprise Linux Server release 7.0 软件版本:apache-tomcat-7.0.92.tar.gzkeepalived-2.0.11.tar.gznginx-1.15.7.tar.gz (openssl-1.1.1.tar.gz pcre-8.40.tar.gz zlib-1.2.11.ta...
keepalived高可用
lwf的博客
03-08 964
keepalived高可用1. keepalived简介1.1 keepalived是什么?1.2 keepalived的重要功能1.3 keepalived高可用故障转移的原理1.4 keepalived原理1.4.1 keepalived高可用架构图1.4.2 keepalived工作原理描述2. keepalived配置文件讲解2.1 keepalived默认配置文件2.2 定制主配置文件3...
高可用的并发解决方案nginx+keepalived视频教程
05-09
本课程介绍了目前处理并发能力非常强悍的开源软件nginx快速入门及使用,介绍nginx+tomcat集群处理并发解决方案,带大家认识虚拟路由,了解虚拟路由的工作流程并安装keepalived,实现nginx+keepalived主备配置,达到...
架构搭建nginx+keepalived高可用负载均衡
01-07
Keepalived主备模式搭建 keepalived下载地址:https://www.keepalived.org/download.html keepalived的工作原理: keepalived是基于VRRP协议实现的保证集群高可用的一个服务软件,主要功能是实现真机的故障隔离和...
在lvs+keepalived+MHA+MySQL下构建ecshop
11-27
项目要达到搭建一个每日PV200W的电子商务网站,系统采用lvs+keepalived+mha+mysql 高可用架构, 本项目各个服务器操作系统均采用Centos7.5,数据库均为MYSQL5.7.23
MyBlog:练手工程,搭建高可用后端架构
05-13
避免单点整体结构是伪高可用,全部都是单机多实例,1nginx+2tomcat+3activemq+6redis+3zookeeper+1mycat+3mysql的pxc使用pxc3节点集群,使用mycat完成mysql的读写分离,不准备学习使用keepalived
keepalived+nginx+tomcat的简单部署
weixin_34351321的博客
09-06 117
keepalived+nginxKeepalived是一个基于VRRP协议来实现的服务高可用方案,也是一种高性能的服务器高可用或热备解决方案,可以利用其来避免IP单点故障,类似的工具还有heartbeat、corosync、pacemaker。但是它一般不会单独出现,而是与其它负载均衡技术(如lvs、h...
群集架构篇——nginx反向代理+keepalived双机热备+tomcat服务器池+后端数据库
weixin_33676492的博客
11-25 228
一、系统环境 1、2台CentOS 7作为nginx服务器绑定同一块虚拟网卡:vnet1对应的IP分别为:192.168.80.100192.168.80.1102、2台CentOS 7作为tomcat服务器同样绑定同一款网卡:vnet1对应的IP设置为:192.168.80.120192.168.80.1303、1台CentOS 7 作为后端数据库绑定网卡:vnet1对应的IP为192.168....
nginx(nginx安装)与keepalived+tomcat高可用搭建
weixin_48470176的博客
10-29 223
安装环境准备 yum -y install pcre-devel opemssl opemssl-devel nginx安装 解压 tar -zxvf nginx-1.14.0.tar.gz 2. 配置安装 cd nginx-1.14.0 ./configer make && make install 3. 启动与关闭 cd 安装目录 ...
Ansible部署nginx-mysql-rsync-nfs-keepalived
运维那些事儿
04-03 381
第1章 ansible安装 1.1 创建密钥对 ssh-keygen -t dsa -P 1.2 把生成的锁头发送给想要控制的服务器 ssh-copy-id -i /root/.ssh/id_dsa.pub 172.16.1.41 1.3 安装epel源 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epe...
lvs nginx tomcat mysql_CentOS下LVS+keepalived+nginx+tomcat部署实现
weixin_42504649的博客
02-17 112
# 节点分布情况LVS-dr-mastereth0: 192.168.146.141LVS-dr-slaveeth0:192.168.146.142nginx1:eth0:192.168.146.139nginx2:eth0:192.168.146.140tomcat1:eth0:192.168.146.138启用了4个tomcatVIP: 192.168.146.200# 拓扑如下所示 # 具体...
分享我做的nginx+keepalived做的主主架构(二)
weixin_34239592的博客
04-15 91
现在负载均衡层的nginx+keepalived双主、web层的nginx+php、数据库层的drbd+heartbeat+mysql都安装完成。 注意:由于我的测试环境机器每台只有1个网卡,所以drbd的心跳我才用再一个网卡上,在真实生产环境下,心跳一定要单独一个网卡一个网络。 对于web服务器之间的数据同步问题,我有了2个解决方法: 1、unison同步 2、使用nfs 最后我考虑使...
Keepalived+Nginx + Tomcat 的高可用负载均衡架构简要说明
stormeryang的专栏
11-19 225
        Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以利用其来避免服务的单点故障。Nginx有轮询(默认)、指定权重、IP绑定 ip_hash和url_hash(第三方)方式的分配负载。         客户端通过域名请求到DNS,由DNS解析域名后返回对应的IP地址,该IP及为Keepalived映射服务器的虚拟IP,通过该虚拟IP访问到对应的负载均衡器...
LVS+Keepalived+Nginx+Tomcat高可用集群搭建
weixin_34252090的博客
08-08 468
最近公司重整架构,老板给出十几台左右的服务器而且还要尽可能节约成本我就谷歌了一下在几种集群之前进行比较最终采用了Keepalived+Nginx做负债均衡高可用。虽然之前也研究过集群,看过很多集群方面的原理和架构,但毕竟没有真正操作过以下案例是在虚拟机中完成实验其实对于高可用搭建来说只用给出KeepalivedNginx的配置即可后面的一些安装搭建完全是本人...
lvs nginx tomcat mysql_keepalived+nginx+lvs+tomcat保证服务高可用
weixin_35761094的博客
02-07 303
01. 介绍首先说明一下关于集群中的几个关键词,比如:高可用,负载均衡,主备,主主,主从等。那么,使用一个世界杯决赛的布局看一看,长宽比例大概是105:68的。举几个例子说明一下:前端可以使用lvs、nginx等,负载可以使用lvs、proxy、nginx等,中间件可以使用nginxtomcat、weblogic等,后端可以使用tomcat、Apache等部署,数据区域一般是数据库和存储,教练可...
keepalived+nginx+tomcat+redis+mysql
最新发布
08-25
对于您提到的keepalivednginxtomcat、redis和mysql,这些是常用于构建高可用和负载均衡的Web应用架构的关键组件。 1. KeepalivedKeepalived是一种开源的高可用解决方案,可以提供IP地址和服务的故障转移。它...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • React.createRef() 38657
  • iMindMap11百度云|iMindMap11序列号激活教程 30412
  • R语言提取包含某字符串的行变量 28685
  • python(openpyxl)复制excel数据到另一个excel 21510
  • C++ map修改指定key的value 17999

最新评论

  • jmx : ClientCommunicatorAdmin Checker-run

    渣渣成长之路: 主管检查后发现说, 这样:m.put("jmx.remote.x.client.connection.check.period", 0L); 不好,不能这么搞! 这个是心跳请求,每一分钟检查jmx是否还有连接,设置为0L之后呢就没有了检查, 可能导致前台状态显示不正确,风险,,,,。。 会吗, 我认为不是这样的,不是每次都会重新连接jmx查询的吗,, 可是。。。 我晕, , 这么干 不是挺好的吗

  • 全面超越Appium,使用Airtest超快速开发App爬虫

    TNTSEO: 求教程 牛逼了

  • T31P电子秤数据读取

    qq_40416250: 你好,我读到你关于奥豪斯电子秤的数据采集解决方案,我们实验室有一台奥豪斯的电导率仪,但是数据采集有问题,方便向你请教下吗

  • 关于微信小程序的wx.request执行后sucess和fail的问题

    随风...: 感谢解惑

  • React.createRef()

    默然燃夏: 晕了,怎么一会说不能将ref属性用于函数式组件一会又说可以在函数式组件中使用ref

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • android 异常解决方案汇总
  • 通用数制转换器
  • 文件二进制的读写
2019年359篇
2018年668篇
2017年871篇
2016年544篇
2015年449篇
2014年347篇
2013年320篇
2012年272篇
2011年204篇
2010年150篇
2009年123篇
2008年80篇
2007年78篇
2006年34篇
2005年22篇
2004年9篇
2003年1篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

PHP网站源码宣城关键词排名包年推广公司巢湖网站推广工具报价海南建网站价格赤峰百度关键词包年推广观澜关键词按天计费推荐松原优化报价南联网站推广工具哪家好周口关键词按天计费厦门网站搭建林芝推广网站哪家好成都营销网站推荐黑河网站优化按天扣费推荐思茅网站改版价格南阳关键词按天扣费多少钱威海seo迪庆百搜标王多少钱常州高端网站设计多少钱坑梓网站优化按天扣费公司广元关键词按天计费揭阳企业网站改版价格玉溪关键词按天收费哪家好通辽外贸网站制作推荐赤峰网站优化排名推荐荆门seo排名公司张掖关键词按天收费公司杭州模板网站建设价格吉安百度网站优化排名凉山网站建设设计价格乐山SEO按效果付费公司铜川营销网站多少钱歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化