搭建Keepalived + Nginx + Tomcat的高可用负载均衡架构

栏目: 服务器 · Nginx · 发布时间: 7年前

内容简介:随着业务的不断扩大,系统的访问量逐渐的上升,单机部署的模式已无法承载现有的业务量,需要进行服务集群化部署,本文主要介绍服务端Tomcat多实例部署,以及如何保证web服务的高可用方案。

1 概述

初期的互联网企业由于业务量较小,所以一般单机部署,实现单点访问即可满足业务的需求,这也是最简单的部署方式,但是随着业务的不断扩大,系统的访问量逐渐的上升,单机部署的模式已无法承载现有的业务量,需要进行服务集群化部署,本文主要介绍服务端Tomcat多实例部署,以及如何保证web服务的高可用方案。

  • Nginx 是一个高性能的 HTTP反向代理服务器
  • Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以利用其来避免服务的单点故障
  • Tomcat 是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器。

2 Nginx的高可用负载均衡架构

如下图:为典型的Tomcat服务多实例部署的架构图

搭建Keepalived + Nginx + Tomcat的高可用负载均衡架构

(1)用户通过域名请求到DNS,由DNS解析域名后返回对应的IP地址,该IP及为Keepalived映射服务器的虚拟IP

(2)通过该虚拟IP访问到对应的负载均衡器(Nginx),这里Nginx部署两个,然后通过Keepalived来保证NG的高可用,正常情况下由Keepalived-M将虚拟IP映射转发至Nginx-M,如果Nginx-M出现故障,此时Keepalived会切换至Keepalived-S开始工作,从而保证了NG的单点故障问题。

(3)通过Nginx负载均衡器,将请求路由到对应的Tomcat服务。

3 搭建Keepalived + Nginx + Tomcat的高可用负载均衡架构

3.1 需要准备的软件

(1)apache-tomcat-8.5.16.tar.gz

(2)nginx-1.12.2.tar.gz

(3)keepalived-1.3.9.tar.gz

3.2 服务器准备

两台服务器如:192.168.10.11,192.168.10.12

3.3 安装需要的依赖包

3.4 安装

3.4.1 安装Tomcat

(1)分别在两台服务器中安装Tomcat,解压apache-tomcat-8.5.16.tar.gz及可完成安装。

3.4.2 安装Nginx

(1)解压安装包:tar -zxvf nginx-1.12.2.tar.gz

(2)进入到nginx-1.12.2目录:cd nginx-1.12.2

(3)编译:

a) ./configure –with-http_stub_status_module –with-http_ssl_module  –prefix=/usr/local/nginx

b) sudo make && sudo make install

3.4.3 安装Keepalived

(1)解压安装包:tar -zxvf keepalived-1.3.9.tar.gz

(2)进入到keepalived-1.3.9目录:cd keepalived-1.3.9

(3)执行编译:

a)./configure –prefix=/usr/local/keepalived –sysconf=/etc

b)sudo make && sudo make install

3.5 配置

3.5.1 分别配置两台服务器的Nginx

(1)分别修改两台服务器nginx配置文件,vi /usr/local/nginx/conf/nginx.conf

(2)内容如下:

3.5.2 主Keepalived配置

(1)修改11服务器的keepalived配置文件,vi /etc/keepalived/keepalived.conf

(2)内容如下:

3.5.3 备Keepalived配置

(1)修改12服务器的keepalived配置文件,vi /etc/keepalived/keepalived.conf

(2)内容如下:

3.5.4 Nginx状态检查脚本创建

(1)新建Nginx的状态检查脚本:check_nginx.sh

(2)内容如下:

4 运行测试

(1)为了更直观的查看到keepalived切换的效果,将11服务器中的nginx的upstream服务只配置11的tomcat服务地址,12服务器中的upstream服务只配置12的tomcat服务地址,这样只需要观察将11服务器中的nginx关闭看使用虚拟ip是否可以访问到12服务器的tomcat。

(2)分别启动两个服务器中的tomcat、nginx、keepalived,访问虚拟ip:192.168.10.200,可以查看到访问的是主keepalived服务器的tomcat

搭建Keepalived + Nginx + Tomcat的高可用负载均衡架构

(3)关闭11服务器的nginx,nginx -s stop,再次访问虚拟ip,如下:说明主keepalived通过配置的脚本检测到了本服务的nginx服务挂掉了,所以立马切换至了备的keepalived,这时12服务器的keepalived升为了主,所以就访问到了12服务器的tomcat。

搭建Keepalived + Nginx + Tomcat的高可用负载均衡架构


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

HTTP Essentials

HTTP Essentials

Stephen A. Thomas、Stephen Thomas / Wiley / 2001-03-08 / USD 34.99

The first complete reference guide to the essential Web protocol As applications and services converge and Web technologies not only assume HTTP but require developers to manipulate it, it is be......一起来看看 《HTTP Essentials》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试