Nginx+Tomcat 负载均衡群集

目录

一,部署Tomcat

1,案例概述

2,案例前置知识点

(1)Tomcat简介

(2)应用场景

3,案例实施

3.1,实施准备

(1)关闭firewalld防火墙

(2)在安装Tomcat之前必须先安装JDK

3.2,查看JDK是否安装

3.3,安装配置Tomcat

(1)Tomcat的安装和配置步骤

​编辑

3.4,Tomcat配置相关说明

(1)主要目录说明

(2)配置文件说明

3.5,Tomcat主配置文件说明

3.6,Tomcat Server的组成部分说明

(1)Server

(2)Service

(3)Connector

(4)Engine

(5)Host

(6)Context

3.7,建立Java的web站点

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

二,案例Nginx+Tomcat

1,安装Nginx(略)

2,修改配置文件


一,部署Tomcat

1,案例概述

京北点指科技有限公司发布V3版移联建站管理系统,该项目为Java语开发的Web站点。目前,BM的WebSphere及Oracle的WebLogic 占据了市面上Java语言Web站点的大部分份额。这两种软件以其无与伦比的性能及可靠性等优势被广泛应用于大型互联网公司的Web场景中,但是其高昂的价格也使得小型互联网公司对此而却步。
Tomcat自5.x版本以来,其性能上已经得到了大幅的提升,再加上其开放性的框架和可二次开发等特性,已经完全可以用在访问量不是很大的生产环境下。目前,大多数用于JSP技术开发的电子商务网站基本应用了Tomcat,而且Tomcat的Servlet和JSP这两种API也完全可以适用于V3版移联建站管理系统。

2,案例前置知识点

(1)Tomcat简介

名称由来:Tomcat最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由Sun贡献给Apache软件基金会。由于大部分开源项目0'Reilly都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat(公猫)。而0'Reilly出版的介绍Tomcat 的书籍的封面也被设计成了一个公猫的形象。而Tomcat的Logo兼吉祥物也被设计成了一只公猫。
其实Tomcat在开始研发的时候并不叫这个名字,早期Tomcat 项目的名字叫Catalina,所以当我们安装完Tomcat后会发现安装路径下面有很多和Catalina有关的目录和文件,而这些文件通常也是我们使用或者配置Tomcat 的重要文件。

(2)应用场景

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

3,案例实施

3.1,实施准备

(1)关闭firewalld防火墙
systemctl stop firewalld
setenforce 0
(2)在安装Tomcat之前必须先安装JDK

JDK的全称是JavaDevelopment Kit,是Sun 公司免费提供的 Java 语言的软件开发工具包,其中包含Java虚拟机(JVM)。编写好的Java 源程序经过编译可形成Java字节码,只要安装了JDK,就可以利用JVM解释这些字节码文 件,从而保证了Java 的跨平台性。
在平台兼容性方面,JDK作为解释字节码文件并据此调用操作系统API实现对应功Java 虚拟机,与操作系统类型和平台位数密切相关,因此存在不同类型的版本,而Tomcat 也具有上述特征,默认情况下JDK已经安装,所以需要预先下载Tomcat,本章中所使用的 Tomcat 软件的源码包为 apache-tomcat-9.0.8.tar.gz。

3.2,查看JDK是否安装

java -version

3.3,安装配置Tomcat

(1)Tomcat的安装和配置步骤
tar xf apache-tomcat-9.0.8.tar.gz
mv apache-tomcat-9.0.8/ /usr/local/tomcat
cd /usr/local/tomcat/bin/startup.sh
netstat -anpt | grep 8080

3.4,Tomcat配置相关说明

ll /usr/local/tomcat/
(1)主要目录说明

bin/:存放Windows或Linux平台上启动和关闭Tomcat 的脚本文件。

conf/:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml 和
web.xml.

lib/:存放Tomcat运行需要的库文件(JARS)。

logs:存放Tomcat 执行时的LOG文件。

webapps:Tomcat的主要Web发布目录(包括应用程序乐例)-

work:存放JSP编译后产生的class文件。

(2)配置文件说明

执行“11conf/”命令,便可看到配置文件清单。

ll /usr/local/tomcat/conf
catalina.policy:权限控制配置文件。
catalina.properties:Tomcat 属性配置文件:
context.xml:上下文配置文件。
logging.properties:日志log 相关配置文件。
server.xml:主配置文件。
tomcat-users.xml:manager-gui管理用户配置文件(Tomcat安装后提供一个managergui 的管理界面,通过配置该文件可以开启访问)。
web.xml:Tomcat的servlet、servlet-mapping、filter、MIE 等相关配置

3.5,Tomcat主配置文件说明

server.xml为Tomcat的主要配置文件,通过配置该文件,可以修改Tomcat的启动端 口、网站目录、虚拟主机、开启 https 等重要功能。
整个 server.xml 由以下结构构成:<Server>、<Service>、<Connector />、<Engine><Host>、<Context>、</Context〉、</Host〉、</Engine〉、</Service>和</Server>以下是默认安装后server.xml文件的部分内容,其中<!---->内的内容是注释信息,黑色斜体部分是需要注意和需要经常更改的部分。

3.6,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.1Connector在端囗8080处侦听来自客户browser的http 请求

(4)Engine

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

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

(5)Host

Host代表一个 VirtualHost,即虚拟主机,每个虚拟主机和某个网络域名 DomainName 相匹配。
每个虚拟主机下都可以部署(deploy)一个或者多个WebApp,每个WebApp 对应于个Context,有一个Context path。
当Host获得一个请求时,将把该请求匹配到某个Context上,然后把该请求交给该Context来处理,匹配的方法是“最长匹配”,所以一个path==""的Context将成为该 Host 的默认 Context。所有无法和其他Context的路径名匹配的请求都将最终和该默认Context 匹配

(6)Context

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

3.7,建立Java的web站点

执行下面步骤可以建立Java的web 站点:

(1)在根目录下建立一个web目录,并在里面建立一个webapp1 目录,用于存放网站文件。
mkdir /web/webappl
vim /web/webapp1/index.jsp
vim /usr/local/tomcat/conf/server.xml
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh

二,案例Nginx+Tomcat

通常情况下,一台Tomcat站点由于可能出现单点故障及无法应付过多客户复杂多样的请求等问题,不能单独应用于生产环境下,所以需要一套更可靠的解决方案来完
善Web 站点 架构。
Nginx是一款非常优秀的http服务器软件,它能够支持高达50000个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存、CPU等系统资源消耗非常低。目前很多大型网站都应用Nginx服务器作为后端网站程序的反向代理及负载均衡器,来提升整个站点的负载并发能力。
Nginx是一个非常强大的静态web服务,Tomcat处理动态请求效率不高,而一般网站大多数的内容都是静态文件(如图片、html、css、js等),经过ginx前端的反向代理加速和过滤,后端Tomcat处理请求的压力便可大大减少,只需负责处理动态内容就可以了。在性能与稳定性的权衡下,使用Nginx+Tomcat 搭配便可让它们在各自擅长的领域大展拳脚。
本案例介绍以Nginx作为负载均衡器、静态页面处理,Tomcat作为应用服务器的负载群集、动态页面处理的设置方法。

1,安装Nginx(略)

2,修改配置文件

upstream my_tomcat  {server 192.168.10.102:8080 weight=1server 192.168.10.103:8080 weight=2
}
charset utf-8
location ~ .*\.jsp$ {proxy_pass http://my_tomcat;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;
}
location ~ .*\.(png|gif|jpeg|jpg)$ {root /usr/local/nginx/html/img;expires 30d;
}
cd /usr/local/nginx/html
mkdir img
cd img/
拉图片
nginx -t
systemctl restart nginx

第二,三台配置一样

systemctl stop firewalld
setenforce 0
dnf -y install java
tar xf apache-tomcat-9.0.8.tar.gz
mv apache-tomcat-9.0.8.tar.gz  /usr/local/tomcat
cd  /usr/local/tomcat
ls
cd bin/
ls
./startup.sh
netstat -anpt | grep java
mkdir -p /web/webapp1
cd /web/webapp1/
拉index.jsp文件
vim index.jsp
test1(全改为1)
logo.png(修改)
vim /usr/local/tomcat/conf/server.xml
150行	<Context docBase="/web/webapp1" path="" reloadable="false"></Context>
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh

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

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

相关文章

Spring Boot Actuator未授权访问漏洞修复

方案1&#xff1a;在网关的配置文件里增加以下配置 management:endpoints:web:exposure:include: []enabled-by-default: falseendpoint:health:show-details: ALWAYS 方案二&#xff1a;直接在nginx配置拦截actuator相关接口 location /actuator { return 403; …

动态规划之网格图模型(二)

文章目录 动态规划之网格图模型&#xff08;二&#xff09;LeetCode 931. 下降路径最小和思路Golang 代码 LeetCode 2684. 矩阵中移动的最大次数思路Golang 代码 LeetCode 2304. 网格中的最小路径代价思路Golang 代码 LeetCode 1289. 下降路径最小和 II思路Golang 代码 LeetCod…

React 编译器

&#x1f916; 作者简介&#xff1a;水煮白菜王&#xff0c;一位前端劝退师 &#x1f47b; &#x1f440; 文章专栏&#xff1a; 前端专栏 &#xff0c;记录一下平时在博客写作中&#xff0c;总结出的一些开发技巧和知识归纳总结✍。 感谢支持&#x1f495;&#x1f495;&#…

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…

Pandas 技术解析:从数据结构到应用场景的深度探索

序 我最早用Python做大数据项目时&#xff0c;接触最早的就是Pandas了。觉得对于IT技术人员而言&#xff0c;它是可以属于多场景的存在&#xff0c;因为它的本身就是数据驱动的技术生态中&#xff0c;对于软件工程师而言&#xff0c;它是快速构建数据处理管道的基石&#xff1…

【循环神经网络RNN第一期】循环神经网络RNN原理概述

目录 &#x1f9e0; 什么是循环神经网络&#xff08;RNN&#xff09;&#xff1f;&#x1f501; RNN 的结构图&#x1f504; RNN 的“记忆”与问题RNN梯度推导 &#x1f9ec; LSTM&#xff1a;解决长期依赖问题&#x1f9f1; LSTM 的核心结构LSTM总结 参考 人类在思考的时候&am…

代码随想录算法训练营 Day60 图论Ⅹ Bellmen_ford 系列算法

图论 题目 94. 城市间货物运输 I Bellmen_ford 队列优化算法 SPFA 大家可以发现 Bellman_ford 算法每次松弛 都是对所有边进行松弛。 但真正有效的松弛&#xff0c;是基于已经计算过的节点在做的松弛。 本图中&#xff0c;对所有边进行松弛&#xff0c;真正有效的松弛&#…

Juce实现Table自定义

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

C++ set数据插入、set数据查找、set数据删除、set数据统计、set排序规则、代码练习1、2

set数据插入&#xff0c;代码见下 #include<iostream> #include<set> #include<vector>using namespace std;void printSet(const set<int>& s) {for (set<int>::const_iterator it s.begin(); it ! s.end(); it) {cout << *it <…

深度学习赋能图像识别:技术、应用与展望

论文&#xff1a; 一、引言​ 1.1 研究背景与意义​ 在当今数字化时代&#xff0c;图像作为信息的重要载体&#xff0c;广泛存在于各个领域。图像识别技术旨在让计算机理解和识别图像内容&#xff0c;将图像中的对象、场景、行为等信息转化为计算机能够处理的符号或数据 &am…

深入解析C++引用:从别名机制到函数特性实践

1.C引用 1.1引用的概念和定义 引用不是新定义⼀个变量&#xff0c;而是给已存在变量取了⼀个别名&#xff0c;编译器不会为引用变量开辟内存空间&#xff0c;它和它引用的变量共用同⼀块内存空间。比如四大名著中林冲&#xff0c;他有一个外号叫豹子头&#xff0c;类比到C里就…

【从0-1的HTML】第1篇:HTML简介

1 HTML简介 HTML是用来描述网页的一种语言,是超文本标记语言的缩写(Hyper Text Markup Language),不属于编程语言的范畴&#xff0c;属于一种标记语言。 标记语言使用一套标记标签(Markup tag)&#xff0c;又称为标签,HTML就是使用标记标签来描述网页。 1.2 HTML标签 1、HTM…

vue+cesium示例:地形开挖(附源码下载)

基于cesium和vue绘制多边形实现地形开挖效果&#xff0c;适合学习Cesium与前端框架结合开发3D可视化项目。 demo源码运行环境以及配置 运行环境&#xff1a;依赖Node安装环境&#xff0c;demo本地Node版本:推荐v18。 运行工具&#xff1a;vscode或者其他工具。 配置方式&#x…

qwen大模型在进行词嵌入向量时,针对的词表中的唯一数字还是其他的?

qwen大模型在进行词嵌入向量时,针对的词表中的唯一数字还是其他的? Qwen大模型进行词嵌入向量时,针对的是词表中每个 Token 对应的唯一数字(Token ID) ,核心逻辑结合词表构建、嵌入过程展开 一、Qwen 词表与 Token ID Qwen 用 BPE 分词器(基于 tiktoken,以 cl100k 为…

动态规划-1143.最长公共子序列-力扣(LeetCode)

一、题目解析 对于给定了两个字符串中&#xff0c;需要找到最长的公共子序列&#xff0c;也就是两个字符串所共同拥有的子序列。 二、算法原理 1、状态表示 dp[i][j]&#xff1a;表示s1的[0,i]和s2的[0,j]区间内所有子序列&#xff0c;最长子序列的长度 2、状态转移方程 根…

互联网c++开发岗位偏少,测开怎么样?

通过这标题&#xff0c;不难看出问这个问题的&#xff0c;就是没工作过的。如果工作过&#xff0c;那就是不断往深的钻研&#xff0c;路越走越窄&#xff0c;找工作一般就是找原来方向的。没工作过的&#xff0c;那一般就是学生。 学生找什么方向的工作比较好&#xff1f; 学生…

推荐算法八股

跑路了&#xff0c;暑期0offer&#xff0c;华为主管面挂了&#xff0c;真幽默&#xff0c;性格测评就挂了居然给我一路放到主管面&#xff0c;科大迅飞太嚣张&#xff0c;直接跟人说后面要面华为&#xff0c;元戎启行&#xff0c;学了C后python完全忘了怎么写&#xff0c;挺尴尬…

Spring Boot微服务架构(九):设计哲学是什么?

一、Spring Boot设计哲学是什么&#xff1f; Spring Boot 的设计哲学可以概括为 ​​“约定优于配置”​​ 和 ​​“开箱即用”​​&#xff0c;其核心目标是​​极大地简化基于 Spring 框架的生产级应用的初始搭建和开发过程​​&#xff0c;让开发者能够快速启动并运行项目…

前端导入Excel表格

前端如何在 Vue 3 中导入 Excel 文件&#xff08;.xls 和 .xlsx&#xff09;&#xff1f; 在日常开发中&#xff0c;我们经常需要处理 Excel 文件&#xff0c;比如导入数据表格、分析数据等。文章将在 Vue 3 中实现导入 .xls 和 .xlsx 格式的文件&#xff0c;并解析其中的数据…

C++和C#界面开发方式的全面对比

文章目录 C界面开发方式1. **MFC&#xff08;Microsoft Foundation Classes&#xff09;**2. **Qt**3. **WTL&#xff08;Windows Template Library&#xff09;**4. **wxWidgets**5. **DirectUI** C#界面开发方式1. **WPF&#xff08;Windows Presentation Foundation&#xf…