nginx+tomcat负载均衡群集

news2025/6/6 0:23:46

一 案例部署Tomcat

目录

一 案例部署Tomcat

1.案例概述

1.1案例前置知识点

(1)Tomcat简介

(2)应用场景

2.实施准备

(1)关闭Linux防火墙

(2)安装Java

2.1 安装配置TOMACT

(1)tomcat的安装配置步骤如下

(2)解压生成apache-tomcat-9.0.8文件夹,将该文件移动到/usr/local/下

(3)进入cd /usr/local/tomcat下  在进入cd bin/下  查看一下文件  

(4)重启一下

(5)打开浏览器测试访问:http://192.168.10.101/8080  出现一下页面则表示tomcat已经启动成功

2.2tomcat配置相关说明

 (1)主要说明

(2)配置文件说明

2.3 tomcat 著配置问及那说明

2.4 tomcat server的组成部分说明

2.4 建立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 nginx服务器配置

(1)关闭Linux防火墙

(2)安装相关软件包

(3)创建用户 解压并编译安装nginx

(4)配置nginx.conf

(5)测试效果 


一案例部署

1.案例概述

京北点指科技有限公司发布 V3 版移联建站管理系统,该项目为 Java 语言开发的Web 站点。目前,IBM 的WebSphere 及Oracle 的WebLogic 占据了市面上 Java 语言 Web 站点的 大部分份额。这两种软件以其无与伦比的性能及可靠性等优势被广泛应用于大型互联网公司 的Web 场景中,但是其高昂的价格也使得小型互联网公司对此望而却步。

Tomcat 自5.x版本以来,其性能上已经得到了大幅的提升,再加上其开放性的框架和 可二次开发等特性,已经完全可以用在访问量不是很大的生产环境下。目前,大多数用于 JSP 技术开发的电子商务网站基本应用了 Tomcat,而且 Tomcat 的Servlet 和 JSP 这两种API 也完全可以适用于 V3 版移联建站管理系统。

1.1案例前置知识点

(1)Tomcat简介

名称由来:Tomcat 最初是由 Sun 的软件构架师詹姆斯·邓肯·戴维森开发的。后
来他帮助将其变为开源项目,并由Sun贡献给 Apache软件基金会。由于大部分开源目0'Reilly 都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat(公猫)。而0'Reilly出版的介绍Tomcat 的书籍的封面也被设计成了一个公猫的形象。而Tomcat 的Logo 兼吉祥物也被设计成了一只公猫。

其实 Tomcat 在开始研发的时候并不叫这个名字,早期 Tomcat 项目的名字叫Catalina,所以当我们安装完Tomcat后会发现安装路径下面有很多和Catalina 有关的目录和文件,而这些文件通常也是我们使用或者配置Tomcat 的重要文件。

(2)应用场景

Tomcat 服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP程序的首选。一般来说,Tomcat 虽然和 Apache 或者 Nginx 这些 Web 服务器一样,具有处理 HTML 页面的 功能,然而由于其处理静态HTML的能力远不及Apache 或者Nginx,所以 Tomcat 通常是作 为一个Servlet 和 JSP容器,单独运行在后端

2.实施准备

(1)关闭Linux防火墙

setenforce 0

systemctl stop firewalld

(2)安装Java

dnf -y install java

2.1 安装配置TOMACT

(1)tomcat的安装配置步骤如下

拉包apache-tomcat-9.0.8.tat.gz

apache-tomcat-9.0.8.tar.gz

解压包 apache-tomcat-9.0.8.tat.gz

tar xf apache-tomcat-9.0.8.tar.gz

(2)解压生成apache-tomcat-9.0.8文件夹,将该文件移动到/usr/local/下

mv apache-tomcat-9.0.8/ /usr/local/tomcat

(3)进入cd /usr/local/tomcat下  在进入cd bin/下  查看一下文件  

cd /usr/local/tomcat

cd bin/

ls


(4)重启一下

./startup.sh

tomcat 默认运行在8080端口,运行netstat命令查看8080端口监听信息。

netstat -anpt | grep java

(5)打开浏览器测试访问:http://192.168.10.101/8080  出现一下页面则表示tomcat已经启动成功

2.2tomcat配置相关说明

tomcat的主目录为/usr/local/tomcat/

ll /usr/local/tomcat

drwxr-x --- 2 root root    4096     4月14日 18:22 bin

drwx--------3 root root    4096     4月14日 18:22 conf 

drwxr-x-----2 root root    4096      4月14日 18:22 lib

-rw-r ------1 root root    57092     2018年 4月28日 LICENSE 

drwxr-x-----2 root root    4096      4月14日 18:24 logs

-rw-r-------1 root root    1804      2018年4月28日 NOTICE

-rw-r-------1 root root    6852      2018年4月28日 RELEASE-NOTES

-rw-r-------1 root root    16246     2018年 4月28日 RUNNING.txt

drwxr-x-----2 root root     4096     4月14日 18:22 temp
 
drwxr-x-----7 root root     4096     2018年4月28日 webapps 

drwxr-x-----3 root root     4096     4月14日 18:24 work 

 (1)主要说明

--- bin/:存放 Windows 或 Linux 平台上启动和关闭 Tomcat 的脚本文件。
| --- conf/:存放Tomcat 服务器的各种全局配置文件,其中最重要的是 server.xml 和
web. xml .
--- lib/:存放Tomcat 运行需要的库文件(JARS)
--- logs:存放 Tomcat 执行时的 LOG 文件。
--- webapps:Tomcat 的主要 Web 发布目录(包括应用程序示例)。
--- work:存放 JSP 编译后产生的 class 文件。

 

(2)配置文件说明

ll /usr/local/tomcat/conf/

drwxr-x --- 3 root root  4096 4月14日 18:24 Catalina

-rw---------1 rot root   13531 2018年4月28日 catalina.policy

rw----------1 root root  7202 2018年4月28日 catalina.properties

-rw --------1 root root  1400 2018年4月28日 context.xml

-rw---------1 root root  1149 2018年4月28日 jaspic-providers.xml

rw----------1 root root  2313 2018年4月28日 jaspic-providers.xsd

-rw---------1 root root  3850 2018年4月28日 logging.properties

rw----------1 root root  7593 4月14日 18:58 server.xml
 
-rw---------1 root root  2164 2018年4月28日 tomcat-users.xml

-rw---------1 root root  2633 2018年4月28日 tomcat-users.xsd

rw----------1 root root  170202 2018年 4月28日 web.xml

>catalina.policy:权限控制配置文件。
>catalina.properties:Tomcat 属性配置文件。
>context.xml:上下文配置文件。
>logging.properties: 日志 1og 相关配置文件。
>server.xml:主配置文件。
>tomcat-users.xml: manager-gui 管理用 户配置文件(Tomcat安装后提供一个 manager-gui 的管理界面,通过配置该文件可以开启访问)
>web.xml:Tomcat 的 servlet、servlet-mapping、filter、MIME 等相关配置。
2.3 tomcat 著配置问及那说明

server.xml 为 Tomcat 的主要配置文件,通过配置该文件,可以修改 Tomcat 的启动端 口、网站目录、虚拟主机、开启https 等重要功能。

整个 server.xml 由以下结构构成 :< Server>、<Service>、<Connector/> << Engine>、<Host>、<Context>、</Context>、</Host>、</Engine>、</Service>和</Server>。以下是默认安装后 server.xml 文件的部分内容,其中 <!---- >内的内容是注释信息,黑色斜体部分是要注意和需要经常更改的部分。

2.4 tomcat server的组成部分说明

Tomcat Server 由 Server、Service、Connector、Engine、Host 和 Context 组成。

(1) Server
Server 元素代表了整个Catalina 的 servlet 容器。
(2) Service
Service 是这样一个集合:它由一个或者多个Connector,以及一个Engine(负责处
理 所有 Connector 所获得的客户请求)组成。

(3) Connector
一个Connector 在某个指定端口上侦听客户请求,并将获得的请求交给 Engine 来处理,从Engine 处获得回应并返回客户。

  Tomcat 有两个典型的 Connector,一个直接侦听来自browser 的http 请求,一
个侦听来自其他 WebServer 的请求。

   Coyote Http/1.1 Connector 在端口 8080 处侦听来自客户 browser 的 http 请求。

  Coyote JK2 Connector 在端口8009 处侦听来自其他WebServer(Apache)的
servlet/jsp代理请求。

(4) Engine
Engine 下可以配置多个虚拟主机Virtual Host,每个虚拟主机都有一个域名。
当 Engine 获得一个请求时,它把该请求匹配到某个Host上,然后把该请求交给该Host来处理

  Engine 有一个默认虚拟主机,当请求无法匹配到任何一个Host上的时候,将交给
该默认 Host 来处理。

(5) Host
Host 代表一个Virtual Host,即虚拟主机,每个虚拟主机和某个网络域名 Domain
Name 相匹配。

  每个虚拟主机下都可以部署(deploy)一个或者多个Web App,每个Web App 对应于一个Context,有一个Context path。

   当Host 获得一个请求时,将把该请求匹配到某个Context 上,然后把该请求交
给该Context 来处理,匹配的方法是“最长匹配”,所以一个path == ""的 Context 将
成为该 Host的默认 Context。

所有无法和其他Context 的路径名匹配的请求都将最终和该默认Context 匹配。

(6) Context
一个Context 对应于一个 Web Application,一个Web Application 由一个或者
多个 Servlet 组成

2.4 建立java的web站点

(1)在跟目录下建立一个web目录,并在里面建立一个webapp1目录,用于存放网站文件

mkdir -p /web/webapp1

(2)在webapp1 目录下建立一个index。jsp的测试页面

vim /web/webapp1/index.jsp

(3)修改tomcat的server.xml文件

定义一个虚拟主机,并将网站文件路径指向已经建立的/web/webapp1在host段增加xontext段

vim /usr/local/tomcat/conf/server.xml

<Context docBase="/web/webapp1" path="" />

</Context>

(4)关闭tomcat在重新启动

/usr/local/tomcat/bin/shudown.sh

/usr/local/tomcat/bin/startup.sh

(5)确认web访问

二 案例nginx+tomcat负载均衡。动静分离群集

1.案例分析

1.1案例概述

Nginx 是一款非常优秀的http服务器软件,它能够支持高达 50000 个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存、CPU 等系统资源消耗非常低。目 前很多大型网站都应用 Nginx 服务器作为后端网站程序的反向代理及负载均衡器,来提升整 个站点的负载并发能力。

Nginx 是一个非常强大的静态 web 服务,Tomcat 处理动态请求效率不高,而一般网站大 多数的内容都是静态文件(如图片、html、css、js等),经过Nginx 前端的反向代理加速 和过滤,后端Tomcat 处理请求的压力便可大大减少,只需负责处理动态内容就可以了。在 性能与稳定性的权衡下,使用Nginx+Tomcat 搭配便可让它们在各自擅长的领域大展拳脚

2.案例实施

2.1 nginx服务器配置

在nginx服务器192。168.10.102上安装nginx,反向代理两个tomcat站点,并实现负载均衡

(1)关闭Linux防火墙

setenforce 0

systemctl stop firewalld

(2)安装相关软件包

dnf -y install gcc pcre-devel zlib-devel openssl-devel

(3)创建用户 解压并编译安装nginx

useradd -M -s /sbin/nologin nginx

tar zxf nginx-1.26.3.tar.gz

cd nginx-1.26.3

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http+ssl+module --with=http_v2_module --with-pcre

make && make install

(4)配置nginx.conf

在 http{…}中加入以下代码,设定负载均衡的服务器列表,weight 参数表示权重,权重越高,被分配到的概率越大。为了使测试效果比较明显,我们把权重设置为一样

vim /usr/local/nginx/conf/nginx.conf

upstream tomcat_server {

server 192. 168. 10. 101:8080 weight=1;

server 192. 168. 10. 103:8080 weight=1;

}

下面是编辑nginx静态页面文件

把Nginx 的默认站点通过 proxy_pass 方法代理到了设定好的 tomcat_server 负载均衡服务器组上。配置完整的nginx.conf 文件内容如下。

vim/usr/local/nginx/html/index.html

location ~ .*\.jsp$ {

proxy_set_header HOST $host;

proxy _set_header Client-IP $remote_addr;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://tomcat_server;

}


upstream tomcat_server {

server 192.168.10.101 :8080 weight=1;

server 192.168.10.103:8080 weight=2;

}

vim /usr/local/nginx/conf/nginx.conf

location ~ .*\. (png|gif|jpeg|jpg)$ {

root /usr/local/nginx/html/img;

expires 30d;

}

下面在nginx上准备静态图片 先创建静态目录

mkdir /usr/local/nginx/html/img

cp /root/logo.jpg /usr/local/nginx/html/img

测试nginx配置文件是否正确

nginx -t

启动nginx服务

systemctl restart nginx

查看 nginx端口进程

netstat -anpt | grep nginx

(5)测试效果 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2397911.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

建造者模式:优雅构建复杂对象

引言 在软件开发中&#xff0c;有时我们需要创建一个由多个部分组成的复杂对象&#xff0c;这些部分可能有不同的变体或配置。如果直接在一个构造函数中设置所有参数&#xff0c;代码会变得难以阅读和维护。当对象构建过程复杂&#xff0c;且需要多个步骤时&#xff0c;我们可…

现场总线结构在楼宇自控系统中的技术要求与实施要点分析

在建筑智能化程度不断提升的当下&#xff0c;楼宇自控系统承担着协调建筑内各类设备高效运行的重任。传统的集中式控制系统在面对复杂建筑环境时&#xff0c;逐渐暴露出布线繁琐、扩展性差、可靠性低等问题。而现场总线结构凭借其分散控制、通信高效等特性&#xff0c;成为楼宇…

学习路之PHP--easyswoole使用视图和模板

学习路之PHP--easyswoole使用视图和模板 一、安装依赖插件二、 实现渲染引擎三、注册渲染引擎四、测试调用写的模板五、优化六、最后补充 一、安装依赖插件 composer require easyswoole/template:1.1.* composer require topthink/think-template相关版本&#xff1a; "…

《云原生安全攻防》-- K8s网络策略:通过NetworkPolicy实现微隔离

默认情况下&#xff0c;K8s集群的网络是没有任何限制的&#xff0c;所有的Pod之间都可以相互访问。这就意味着&#xff0c;一旦攻击者入侵了某个Pod&#xff0c;就能够访问到集群中任意Pod&#xff0c;存在比较大的安全风险。 在本节课程中&#xff0c;我们将详细介绍如何通过N…

06 APP 自动化- H5 元素定位

文章目录 H5 元素定位1、APP 分类2、H5 元素3、H5 元素定位环境的搭建4、代码实现&#xff1a; H5 元素定位 1、APP 分类 1、Android 原生 APP2、混合 APP(Android 原生控件H5页面)3、纯 H5 App 2、H5 元素 H5 元素容器 WebViewWebView 控件实现展示网页 3、H5 元素定位环…

定时线程池失效问题引发的思考

最近在做的一个新功能&#xff0c;在结果探测的时候使用了定时线程池和普通线程池结合&#xff0c;定时线程池周期性创建子任务并往普通线程池提交任务。 问题&#xff1a; 在昨天测试老师发现&#xff0c;业务实际上已经成功了&#xff0c;但是页面还是一直显示进行中。 收到…

AXURE安装+汉化-Windows

安装网站&#xff1a;https://www.axure.com/release-history/rp9 Axure中文汉化包下载地址 链接:https://pan.baidu.com/s/1U62Azk8lkRPBqWAcrJMFew?pwd5418 提取码:5418 下载完成之后&#xff0c;crtlc lang文件夹 到下载的Axure路径下 双击点进这个目录里面。ctrlv把lan…

ArcGIS Pro字段计算器与计算几何不可用,显示灰色

“字段计算器”不可用 如果计算字段命令不可用&#xff0c;请考虑以下可能性&#xff1a; 由 ArcGIS 管理的字段无法手动编辑。因此&#xff0c;无法计算 ObjectID&#xff08;OID 或 FID&#xff09;字段或地理数据库要素类的 Shape_Length 和 Shape_Area 字段的字段值。表中…

mac电脑安装 nvm 报错如何解决

前言 已知&#xff1a;安装nvm成功&#xff1b;终端输入nvm -v 有版本返回 1. 启动全局配置环境变量失败 source ~/.zshrc~ 返回&#xff1a; source: no such file or directory: /Users/你的用户名/.zshrc~2 安装node失败 nvm install 16.13返回&#xff1a; mkdir: /U…

第11节 Node.js 模块系统

为了让Node.js的文件可以相互调用&#xff0c;Node.js提供了一个简单的模块系统。 模块是Node.js 应用程序的基本组成部分&#xff0c;文件和模块是一一对应的。换言之&#xff0c;一个 Node.js 文件就是一个模块&#xff0c;这个文件可能是JavaScript 代码、JSON 或者编译过的…

上海工作机会:Technical Writer Senior Technical Writer - 中微半导体设备

大名鼎鼎的中微半导体招聘文档工程师了&#xff0c;就是那家由中国半导体产业的领军人物尹志尧领导的、全员持股的公司。如果你还不了解他&#xff0c;赶快Deepseek一下“尹志尧”了解。 招聘职位&#xff1a;Technical Writer & Senior Technical Writer 公司名称&#…

Python微积分可视化:从导数到积分的交互式教学工具

Python微积分可视化:从导数到积分的交互式教学工具 一、引言 微积分是理解自然科学的基础,但抽象的导数、积分概念常让初学者感到困惑。本文基于Matplotlib开发一套微积分可视化工具,通过动态图像直观展示导数的几何意义、积分的近似计算及跨学科应用,帮助读者建立"数…

Juce实现Table自定义

Juce实现Table自定义 一.总体展示概及概述 在项目中Juce中TableList往往无法满足用户需求&#xff0c;头部和背景及背景颜色设置以及在Cell中添加自定义按钮&#xff0c;所以需要自己实现自定义TabelList&#xff0c;该示例是展示实现自定义TableList&#xff0c;实现自定义标…

【后端高阶面经:架构篇】51、搜索引擎架构与排序算法:面试关键知识点全解析

一、搜索引擎核心基石&#xff1a;倒排索引技术深度解析 &#xff08;一&#xff09;倒排索引的本质与构建流程 倒排索引&#xff08;Inverted Index&#xff09;是搜索引擎实现快速检索的核心数据结构&#xff0c;与传统数据库的正向索引&#xff08;文档→关键词&#xff0…

Windows应用-音视频捕获

下载“Windows应用-音视频捕获”项目 本应用可以同时捕获4个视频源和4个音频源&#xff0c;可以监视视频源图像&#xff0c;监听音频源&#xff1b;可以将视频源图像写入MP4文件&#xff0c;将音频源写入MP3或WAV文件&#xff1b;还可以录制系统播放的声音。本应用使用MFC对话框…

【OCCT+ImGUI系列】012-Geom2d_AxisPlacement

Geom2d_AxisPlacement 教学笔记 一、类概述 Geom2d_AxisPlacement 表示二维几何空间中的一个坐标轴&#xff08;轴系&#xff09;&#xff0c;由两部分组成&#xff1a; gp_Pnt2d&#xff1a;原点&#xff08;Location&#xff09;gp_Dir2d&#xff1a;单位方向向量&#xff…

【C++高并发内存池篇】性能卷王养成记:C++ 定长内存池,让内存分配快到飞起!

&#x1f4dd;本篇摘要 在本篇将介绍C定长内存池的概念及实现问题&#xff0c;引入内存池技术&#xff0c;通过实现一个简单的定长内存池部分&#xff0c;体会奥妙所在&#xff0c;进而为之后实现整体的内存池做铺垫&#xff01; &#x1f3e0;欢迎拜访&#x1f3e0;&#xff…

mac下通过anaconda安装Python

本次分享mac下通过anaconda安装Python、Jupyter Notebook、R。 anaconda安装 点击&#x1f449;https://www.anaconda.com/download&#xff0c; 点击Mac系统安装包&#xff0c; 选择Mac芯片&#xff1a;苹果芯片 or intel芯片&#xff0c; 选择苹果芯片图形界面安装&#x…

微软PowerBI考试 PL300-Power BI 入门

Power BI 入门 上篇更新了微软PowerBI考试 PL-300学习指南&#xff0c;今天分享PowerBI入门学习内容。 简介 Microsoft Power BI 是一个完整的报表解决方案&#xff0c;通过开发工具和联机平台提供数据准备、数据可视化、分发和管理。 Power BI 可以从使用单个数据源的简单…

逻辑回归知识点

一、逻辑回归概念 逻辑回归(Logistic Regression)是一种广泛应用于分类问题的统计方法&#xff0c;尤其适用于二分类问题。 注意: 尽管名称中有"回归"二字&#xff0c;但它实际上是一种分类算法。 解决二分类的问题。 API&#xff1a;sklearn.linear_model.Logis…