nginx代理与tomcat动静分离

文章目录

一.案例 部署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配置文件添加一条变量

重启服务然后客户端访问在查询访问日志

相关推荐
egoist202312 分钟前
【Linux仓库】进程优先级及进程调度【进程·肆】
linux·运维·服务器·进程切换·进程调度·进程优先级·大o1调度
格调UI成品2 小时前
预警系统安全体系构建:数据加密、权限分级与误报过滤方案
大数据·运维·网络·数据库·安全·预警
xuanzdhc6 小时前
Linux 基础IO
linux·运维·服务器
愚润求学6 小时前
【Linux】网络基础
linux·运维·网络
小和尚同志7 小时前
29.4k!使用 1Panel 来管理你的服务器吧
linux·运维
就叫飞六吧9 天前
基于keepalived、vip实现高可用nginx (centos)
python·nginx·centos
小米里的大麦9 天前
014 Linux 2.6内核进程调度队列(了解)
linux·运维·驱动开发
程序员的世界你不懂9 天前
Appium+python自动化(三十)yaml配置数据隔离
运维·appium·自动化
算法练习生9 天前
Linux文件元信息完全指南:权限、链接与时间属性
linux·运维·服务器
浩浩测试一下9 天前
渗透测试指南(CS&&MSF):Windows 与 Linux 系统中的日志与文件痕迹清理
linux·运维·windows·安全·web安全·网络安全·系统安全