nginx代理与tomcat动静分离

发布于:2025-06-22 ⋅ 阅读:(22) ⋅ 点赞:(0)

一.案例 部署tomcat

1.案例概述

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

1.1Tomcat简介

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

②应用场景

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

1.2案例环境

两台tomcat服务器192.168.10.102 tomcat1
192.168.10.103 tomcat2
实验前都关闭防火墙和selinux安全机制

2.案例

2.1安装tomcat前安装java版本需要一致

JDK的全称是JavaDevelopmentKit,是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安装tomcat并配置(两台tomcat配置一致)

①解压tomcat tar.gz

并将解压的归档压缩包移动到指定目录下
在这里插入图片描述

②启动tomcat 然后监听端口号查看java是否运行

在这里插入图片描述

③在浏览器搜索tomcat1,2IP地址加端口号8080是否能查看公猫页面在这里插入图片描述

如果想关闭tomcat,则允许shutdown.sh命令

2.4Tomcat配置相关说明

Tomcat的主目录为/usr/local/mycat9

①主要目录说明

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

②配置文件说明

在这里插入图片描述
catalina.policy:权限控制配置文件。
catalina.properties:Tomcat属性配置文件。
context.xml:上下文配置文件。
logging.properties:日志log相关配置文件。
server.xml:主配置文件。
tomcat-users. xml:managergui管理用户配置文件 (Tomcat安装后提供一个manager-gui的管理界面,通过配置该文件可以开启访问)。

web.xml:Tomcat的servlet、servlet-mapping、filter、MIME等相关配置。

2.5主配置文件说明

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

2.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的请求。
CoyoteHttp/1.1Connector在端口8080处侦听来自客户browser的http请
求。
CoyoteJK2Connector在端口8009处侦听来自其他WebServer(Apache)的
servlet/jsp 代理请求。

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

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

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

2.7 建立java的web站点

①根目录建立web目录,并在里面建立webapp1目录,用于存网站文件

在这里插入图片描述

②在webapp1目录创建动态网页jsp

在这里插入图片描述

③修改tomcat配置文件在host标签下创建Context

添加动态网站位置

在这里插入图片描述

④重启tomcat

在这里插入图片描述

⑤访问web网站

在这里插入图片描述
在这里插入图片描述

二.nginx+tomcat 实现负载均衡 动静分离 代理集群

1.1案例概述

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

2.案例实施

2.1nginx服务器配置

①安装nginx的头库文件和编译环境

在这里插入图片描述

②解压并安装nginx源码包

在这里插入图片描述
在这里插入图片描述

④修改配置文件

添加后端服务器实现负载均衡
在这里插入图片描述

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

在这里插入图片描述
~是不区分大小
第一个location是动态页面正则表达式写的代理参数可以显示真实ip地址
第二行tomcat的动态网页里的静态内容正则表达式由nginx来处理我们指定的是图片

然后创建指定的图片存放目录
在这里插入图片描述

重启nginx服务监听端口号
在这里插入图片描述

通过代理服务器IP加tomcat的uri动态网页进行动静分离

在这里插入图片描述

查看客户端真实ip地址

修改tomcat配置文件添加一条变量
在这里插入图片描述

重启服务然后客户端访问在查询访问日志
在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到