LVS负载均衡群集:Nginx+Tomcat负载均衡群集
目录
一:案例:部署Tomcat
1.案例分析
(1)案例概述
1.2案例前置知识点
(1)Tomcat 简介
(2)应用场景
1.3案例环境
(1)本案例环境
2.案例实施
2.1实施准备
(1)关闭firewalld 防火墙。
(2)在安装Tomcat之前必须先安装JDK
2.2查看JDK是否安装
2.3安装配置 Tomcat
(1)Tomcat 的安装和配置步骤如下:
解压 apache-tomcat-9.0.8.tar.gz包。编辑(2)解压后生成 apache-tomcat-9.0.8 文件夹,将该文件夹移动到/usr/local/下,并 改名为 tomcat9。编辑(3)启动 tomcat
(4)打开浏览器访问测试:http:/192.168.10.102:8080/,如果出现如图所示的界 面,则表示 Tomcat 已经启动成功。
2.4 Tomcat 配置相关说明
(1)主要目录说明
(2)配置文件说明
2.5 Tomcat 主配置文件说明
2.6Tomcat Server的组成部分说明
2.7建立 Java 的 Web 站点
(1)在根目录下建立一个web目录,并在里面建立一个webapp1 目录,用于存放网站文 件。编辑
(2)在 webapp1 目录下建立一个 index.jsp 的测试页面。
(3)修改Tomcat的 server.xml 文件。
(4)关闭Tomcat,再重新启动
(5)确认 Web 站点
二.案例:Nginx+Tomcat 负载均衡、动静分离群集
1.案例分析
1.1案例概述
2.案例实施
2.1 Tomcat2 server 配置
2.2Nginx 服务器配置
(1)关闭防火墙。编辑
(2)安装相关软件包。编辑
(3)解压并安装 Nginx。
(4)配置 nginx.conf。
2.3测试效果
一:案例:部署Tomcat
1.案例分析
(1)案例概述
京北点指科技有限公司发布V3版移联建站管理系统,该项目为Java 语言开发的Web 站点。目前,IBM 的 WebSphere 及Oracle 的 WebLogic 占据了市面上 Java 语言 Web 站点的 大部分份额。这两种软件以其无与伦比的性能及可靠性等优势被广泛应用于大型互联网公司 的 Web 场景中,但是其高昂的价格也使得小型互联网公司对此望而却步。
Tomcat 自 5.x版本以来,其性能上已经得到了大幅的提升,再加上其开放性的框架和 可二次开发等特性,已经完全可以用在访问量不是很大的生产环境下。 目前,大多数用于 JSP 技术开发的电子商务网站基本应用了 Tomcat,而且 Tomcat 的Servlet 和 JSP 这两种 API 也完全可以适用于 V3 版移联建站管理系统。
1.2案例前置知识点
(1)Tomcat 简介
项目 | 描述 |
---|---|
名称由来 | Tomcat最初由Sun的软件构架师詹姆斯·邓肯·戴维森开发,后成为Apache开源项目。命名灵感来自O'Reilly动物封面传统,希望项目能“自己照顾自己”,故选用“Tomcat”(公猫)。 |
早期名称 | 研发初期项目名为Catalina,安装后相关目录和文件仍保留此名称,是配置Tomcat的重要部分。 |
Logo与吉祥物 | 设计为一只公猫形象,O'Reilly出版的Tomcat书籍封面也采用公猫素描。 |
开发者 | 詹姆斯·邓肯·戴维森(James Duncan Davidson) |
归属 | 由Sun贡献给Apache软件基金会 |
(2)应用场景
项目 | 描述 |
---|---|
服务器类型 | 免费、开源的轻量级Web应用服务器 |
适用场景 | 中小型系统、并发访问用户较少的场合,开发和调试JSP程序的首选 |
功能特点 | 可作为Servlet和JSP容器运行,支持动态内容处理;处理静态HTML的能力较弱,通常与Apache/Nginx配合使用(静态资源由前端服务器处理) |
性能定位 | 专注于动态内容处理,适合作为后端服务独立运行 |
对比 | 与Apache/Nginx相比:静态处理能力较弱,但作为Java应用容器更高效 |
如图所示:
1.3案例环境
(1)本案例环境
案例环境:
主机 | 操作系统 | IP地址 | 应用 |
---|---|---|---|
Tomcat 服务器 | OpenEuler 24 | 192.168.10.102 | apache-tomcat-9.0.8 |
2.案例实施
2.1实施准备
(1)关闭firewalld 防火墙。
(2)在安装Tomcat之前必须先安装JDK
JDK 的全称是 Java Development Kit,是 Sun 公司免费提供的 Java 语言的软件开发工具包,其中包含 Java 虚拟机(JVM)。编写好的Java 源程序经过编译可形成Java 字节码,只要安装了 JDK,就可以利用 JVM 解释这些字节码文 件,从而保证了Java 的跨平台性。
在平台兼容性方面,JDK 作为解释字节码文件并据此调用操作系统 API 实现对应功Java 虚拟机,与操作系统类型和平台位数密切相关,因此存在不同类型的版本,而Tomcat 也具有上述特征,默认情况下 JDK 已经安装,所以需要预先下载 Tomcat,本章中所使用的 Tomcat 软件的源码包为 apache-tomcat-9.0.8.tar.gz。
2.2查看JDK是否安装
运行 java -version 命令査看 Java 是否安装。如果没有安装需要自行下载安装
2.3安装配置 Tomcat
(1)Tomcat 的安装和配置步骤如下:
解压 apache-tomcat-9.0.8.tar.gz包。

(2)解压后生成 apache-tomcat-9.0.8 文件夹,将该文件夹移动到/usr/local/下,并 改名为 tomcat9。

(3)启动 tomcat
Tomcat 默认运行在 8080 端口,运行 netstat 命令査看 8080 端口监听的信息
(4)打开浏览器访问测试:http:/192.168.10.102:8080/,如果出现如图所示的界 面,则表示 Tomcat 已经启动成功。
如果想关闭 Tomcat,则运行/usr/local/tomcat9/bin/shutdown.sh 命令
2.4 Tomcat 配置相关说明
Tomcat 的主目录为/usr/local/tomcat9/。
(1)主要目录说明
目录 | 说明 |
---|---|
bin/ | 存放Windows或Linux平台上启动和关闭Tomcat的脚本文件(如startup.sh 、shutdown.sh )。 |
conf/ | 存放Tomcat的全局配置文件,如server.xml (核心配置)、web.xml (默认应用配置)。 |
lib/ | 存放Tomcat运行所需的库文件(JAR包),支持服务器和Web应用运行。 |
logs/ | 存放Tomcat运行时生成的日志文件(如访问日志、错误日志),用于故障排查。 |
webapps/ | Tomcat默认的Web应用部署目录,存放项目文件(如WAR包)及自带示例程序。 |
work/ | 存放JSP文件编译后生成的Servlet源文件和class文件(临时工作目录)。 |
(2)配置文件说明
执行“ll conf/ ”命令,便可看到配置文件清单。
配置文件 | 功能描述 |
---|---|
catalina.policy | 权限控制配置文件,用于配置Tomcat的安全策略,特别是当启用SecurityManager时使用。 |
catalina.properties | Tomcat属性配置文件,用于设置类加载器路径、安全限制等全局属性。 |
context.xml | 上下文配置文件,用于定义Web应用的上下文参数,如数据源、会话管理等配置。 |
logging.properties | 日志相关配置文件,用于设置日志级别、输出格式和存储路径等。 |
server.xml | Tomcat的主配置文件,用于配置服务器端口、连接器(Connector)、虚拟主机(Host)等核心组件。 |
tomcat-users.xml | 管理用户配置文件,用于配置访问Tomcat管理界面(如manager-gui)的用户角色和权限。 |
web.xml | 全局Web应用配置文件,用于定义Servlet、Filter、MIME类型等,所有Web应用共享此配置。 |
2.5 Tomcat 主配置文件说明
server.xml 为 Tomcat 的主要配置文件,通过配置该文件,可以修改 Tomcat 的启动端 口、网站目录、虚拟主机、开启 https 等重要功能。
整个 server.xml 由以下结构构成:<Server>、<Service>、<Connector />、<Engine>.<Host>、 <Context〉、</Context>、</Host〉、</Engine〉、</Service>和</Server>。以下是默认安装后 server.xml 文件的部分内容,其中<!---->内的内容是注释信息,黑色斜体部分是需要注意和需要经常更改的部分。
配置项 | 参数/属性 | 功能说明 | 默认值/示例 |
---|---|---|---|
Server关闭端口 | port="8005" | 用于接收关闭Tomcat的指令,默认仅允许本机访问(telnet 127.0.0.1 8005 )。 | 8005 |
HTTP连接器 | port="8080" | Tomcat默认HTTP服务端口,处理浏览器请求。可通过修改此端口避免冲突。 | 8080 |
protocol="HTTP/1.1" | 使用HTTP/1.1协议。 | ||
connectionTimeout="20000" | 连接超时时间(毫秒)。 | 20000 (20秒) | |
redirectPort="8443" | 若请求需HTTPS安全跳转,重定向到此端口。 | 8443 | |
AJP连接器 | port="8009" | AJP协议端口,用于与Apache/Nginx等前端服务器集成。 | 8009 |
protocol="AJP/1.3" | 使用AJP 1.3协议。 | ||
虚拟主机配置 | <Host name="localhost"> | 定义默认虚拟主机,name 为主机名。 | localhost |
appBase="webapps" | 指定Web应用部署目录。 | webapps | |
unpackWARs="true" | 自动解压WAR包部署。 | true | |
autoDeploy="true" | 自动部署新增或修改的应用。 | true | |
访问日志配置 | <Valve className="...AccessLogValve"> | 记录访问日志,包括客户端IP、请求时间、响应状态等。 | |
directory="logs" | 日志存储目录。 | logs | |
prefix="localhost_access_log" | 日志文件名前缀。 | localhost_access_log | |
pattern="%h %l %u %t "%r" %s %b" | 日志格式:客户端IP、用户、时间、请求行、状态码、传输字节数。 | common 等效格式 |
2.6Tomcat Server的组成部分说明
组件 | 功能描述 | 典型配置/示例 |
---|---|---|
Server | 代表整个Catalina Servlet容器,是Tomcat的最顶层元素,包含一个或多个Service。 | <Server port="8005" shutdown="SHUTDOWN"> |
Service | 由一个或多个Connector和一个Engine组成,用于处理Connector接收的客户端请求。 | <Service name="Catalina"> |
Connector | 在指定端口监听客户端请求,并将请求传递给Engine处理。分为HTTP Connector和AJP Connector两种类型。 | HTTP: <Connector port="8080" protocol="HTTP/1.1"> AJP: <Connector port="8009" protocol="AJP/1.3"> |
Engine | 处理所有Connector接收的请求,可配置多个虚拟主机(Host)。默认将无法匹配的请求交给默认Host处理。 | <Engine name="Catalina" defaultHost="localhost"> |
Host | 代表一个虚拟主机,与域名匹配。每个Host可部署多个Web应用(Context),通过“最长匹配”规则将请求交给对应的Context处理。 | <Host name="localhost" appBase="webapps"> |
Context | 对应一个Web应用,包含一个或多个Servlet。是请求处理的最终单元。 | <Context path="/example" docBase="example.war"> |
2.7建立 Java 的 Web 站点
执行下面步骤可以建立 Java 的 Web 站点。
(1)在根目录下建立一个web目录,并在里面建立一个webapp1 目录,用于存放网站文 件。

(2)在 webapp1 目录下建立一个 index.jsp 的测试页面。
(3)修改Tomcat的 server.xml 文件。
定义一个虚拟主机,并将网站文件路径指向已经建立的/web/webapp1,在 host 段增加
context 段。
(4)关闭Tomcat,再重新启动
(5)确认 Web 站点
通过浏览器访问 http://192.168.10.102:8080/, 出现如图所示的页面,说明该Tomcat 站点已经配置成功,并且已经能够运行JSP了。
二.案例:Nginx+Tomcat 负载均衡、动静分离群集
1.案例分析
1.1案例概述
通常情况下,一台Tomcat 站点由于可能出现单点故障及无法应付过多客户复杂多样的 请求等问题,不能单独应用于生产环境下,所以需要一套更可靠的解决方案来完善 Web 站点 架构。
Nginx 是一款非常优秀的 http 服务器软件,它能够支持高达 50000 个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存、CPU等系统资源消耗非常低。目前很多大型网站都应用 Nginx 服务器作为后端网站程序的反向代理及负载均衡器,来提升整 个站点的负载并发能力。
Nginx 是一个非常强大的静态 web 服务,Tomcat 处理动态请求效率不高,而一般网站大 多数的内容都是静态文件(如图片、html、css、js 等),经过 Nginx 前端的反向代理加速 和过滤,后端Tomcat 处理请求的压力便可大大减少,只需负责处理动态内容就可以了。在 性能与稳定性的权衡下,使用 NginxtTomcat 搭配便可让它们在各自擅长的领域大展拳脚。
本案例介绍以 Nginx 作为负载均衡器、静态页面处理,Tomcat 作为应用服务器的负载 群集、动态页面处理的设置方法。网站拓扑架构如图所示。
案例表环境:
主机名称 | 操作系统 | IP地址 | 应用 |
---|---|---|---|
Tomcat1 服务器 | OpenEuler24 | 192.168.10.102 | apache-tomcat-9.0.8 |
Tomcat2 服务器 | OpenEuler24 | 192.168.10.103 | apache-tomcat-9.0.8 |
Nginx 服务器 | OpenEuler24 | 192.168.10.101 | nginx-1.26.3 |
2.案例实施
2.1 Tomcat2 server 配置
Tomcat2 server 配置方法基本同 Tomcatl,其中包括:
(1)关闭防火墙。
(2)确认是否安装 JDK,JAVA 版本与 Tomcatl server 保持一致。
(3)安装配置 Tomcat,版本与 Tomcatl server 保持一致。
(4)创建/web/webapp1 日录,修改 Tomcat 配置文件 server.xml,将网站文件目录更改 到/web/webapp1/路径下。
(5)在/web/webapp1/路径下建立 index.jsp,为了区别将测试页面 index.jsp 的内容更改如下。
(6)启动 Tomcat,浏览器访问 Tomcat2 server, 测试 http://192.168.10.103:8080/。
2.2Nginx 服务器配置
在 Nginx 服务器 192.168.10.101上安装 Nginx,反向代理到两个 Tomcat 站点并实现负载均衡。
(1)关闭防火墙。

(2)安装相关软件包。

(3)解压并安装 Nginx。
(4)配置 nginx.conf。
配置命令如下:
下面是编辑Nginx静态页面文件。
把 Nginx 的默认站点通过 proxy_pass 方法代理到了设定好的 tomcat_server 负载均衡服务器组上。配置完整的 nginx.conf 文件内容如下。
下面在 Nginx 上准备静态图片。
测试 Nginx 配置文件是否正确。
启动Nginx服务。
查看Nginx服务进程。
nginx 查看端口号及 PID 进程号。
2.3测试效果
测试类型 | 测试步骤 | 预期结果 | 实际结果 |
---|---|---|---|
静态页面测试 | 1. 浏览器访问 http://192.168.10.101/ 。2. 观察页面内容。 | 显示Nginx默认静态页面,内容为“这是个静态页面”。 | 成功显示静态页面,内容与预期一致。 |
负载均衡测试 | 1. 浏览器访问 http://192.168.10.101/index.jsp 。2. 多次刷新页面。 | 页面在test1 和test2 之间轮询切换(权重相同),且能正常加载静态图片。 | 首次访问显示test1 页面,刷新后显示test2 页面,轮询功能正常。 |