Nginx+Tomcat负载均衡群集
目录
- 部署Tomcat
- 1.案例分析
- (1)案例概述
- (2)案例前置知识点
- 1.Tomcat简介
- 2.应用场景
- 2.案例实施
- (1)实施准备
- (2)安装Tomcat前需要安装JDK
- (3)查看版本
- (4)安装配置Tomcat
- (5)建立Java的web站点
- 3.Tomcat配置相关说明
- (1)主要目录说明
- (2)配置文件说明
- (3)主配置文件说明
- (4)组成部分说明
- 案例Nginx+Tomcat负载均衡、动静分离群集
- 1.案例概述
- 2.案例实施
部署Tomcat
1.案例分析
(1)案例概述
京北点指科技有限公司发布V3版移联建站管理系统,该项目为Java 语言开发的Web 站点。目前,IBM 的 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 的书籍的封面也被设计成
第10页共17 页
了一个公猫的形象。而 Tomcat 的 Logo 兼吉祥物也被设计成了一只公猫。
其实 Tomcat 在开始研发的时候并不叫这个名字,早期 Tomcat 项目的名字叫Catalina,所以当我们安装完 Tomcat 后会发现安装路径下面有很多和 Catalina 有关的目录和文件,而这些文件通常也是我们使用或者配置 Tomcat 的重要文件。
2.应用场景
Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试SF程序的首选。 一般来说,Tomcat 虽然和 Apache 或者 Nginx 这些 Web 服务器一样,具有处理 HTML页面的 功能,然而由于其处理静态 HTML的能力远不及 Apache 或者Nginx,所以 Tomcat 通常是作 为一个 Servlet 和 JSP 容器,单独运行在后端。
2.案例实施
(1)实施准备
(2)安装Tomcat前需要安装JDK
JDK 的全称是 Java Development Kit,是 Sun 公司免费提供的 Java 语言的软件开发工具包,其中包含 Java 虚拟机(JVM)。编写好的Java 源程序经过编译可形成Java 字节码,只要安装了 JDK,就可以利用 JVM 解释这些字节码文 件,从而保证了Java 的跨平台性。
在平台兼容性方面,IDK作为解释字节码文件并据此调用操作系统 API 实现对应功Java 虚拟机,与操作系统类型和平台位数密切相关,因此存在不同类型的版本,而Tomcat 也具有上述特征,默认情况下 JDK 已经安装,所以需要预先下载Tomcat,本章中所使用的 Tomcat 软件的源码包为 apache-tomcat-9.0.8.tar. gz。
(3)查看版本
(4)安装配置Tomcat
解压
移动目录
启动tomcat
打开测试页面
(5)建立Java的web站点
在根目录下建立一个web目录,并在里面建立一个webapp1 目录,用于存放网站文件。
在目录下建立测试页面
修改Tomcat的server.xml文件
重新启动
确认站点
并没有出现 logo.jpg 图片,原因是由于静态图片暂时没配,所以加载不出来。
3.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)配置文件说明
catalina.policy:权限控制配置文件。
catalina.properties:Tomcat 属性配置文件。
context.xml:上下文配置文件。
logging.properties:日志log 相关配置文件:
server.xml:主配置文件。
tomcat-users.xml:manager-gui管理用户配置文件(Tomcat 安装后提供一个manager-gui 的管理界面,通过配置该文件可以开启访问)
web.xml:Tomcat 的 servlet、servlet-mapping、filter、MIME 等相关配置。
(3)主配置文件说明
server.xml 为 Tomcat 的主要配置文件,通过配置该文件,可以修改 Tomcat 的启动端 口、网站目录、虚拟主机、开启 https 等重要功能。
<Server port="8005"shutdown=“SHUTDOWN”>// Tomcat 关闭端口,默认只对本机地址开放,可以在本机通过 telnet 127.0.0.1 8005访问,对 Tomcat 进行关闭操作
<Connector port="8080"protocol="HTTP/1.1"connectionTimeout="20000"redirectPort=“8443”/>
//Tomcat 启动的默认端口号 8080,可以根据需要进行更改
<Connector port="8009"protocol=“AJP/1.3” redirectPort="8443”/>//Tomcat 启动 AJP 1.3 连接器时默认的端口号,可以根据需要进行更改
(4)组成部分说明
Tomcat Server 由Server、Service、Connector、Engine、Host 和 Context 组成。
(1)Server
Server 元素代表了整个Catalina的 servlet 容器:
(2)ServiceService
它由一个或者多个 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,即虚拟主机,每个虚拟主机和某个网络域名 DomainName 相匹配。
每个虚拟主机下都可以部署(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 组成。
案例Nginx+Tomcat负载均衡、动静分离群集
1.案例概述
通常情况下,一台Tomcat 站点由于可能出现单点故障及无法应付过多客户复杂多样的 请求等问题,不能单独应用于生产环境下,所以需要一套更可靠的解决方案来完善 Web 站点 架构。
Nginx 是一款非常优秀的 http 服务器软件,它能够支持高达 50000 个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存、CPU 等系统资源消耗非常低。目 前很多大型网站都应用 Nginx 服务器作为后端网站程序的反向代理及负载均衡器,来提升整个站点的负载并发能力。
Nginx 是一个非常强大的静态 web 服务,Tomcat 处理动态请求效率不高,而一般网站大 多数的内容都是静态文件(如图片、html、css、is 等),经过 Nginx 前端的反向代理加速 和过滤,后端 Tomcat 处理请求的压力便可大大减少,只需负责处理动态内容就可以了。在 性能与稳定性的权衡下,使用 NginxtTomcat 搭配便可让它们在各自擅长的领域大展拳脚。
本案例介绍以 Nginx 作为负载均衡器、静态页面处理,Tomcat 作为应用服务器的负载 群集、动态页面处理的设置方法。
2.案例实施
tomcat服务器如上配置这里省略
nginx服务器配置
nginx -s reload 重载
tomcat配置 server.xml