栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

部署Tomcat及优化

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

部署Tomcat及优化

目录

前言

一、Tomcat简介

1、Tomcat介绍

2.应用场景

3.Tomcat核心组件

4.Tomcat处理请求过程

二、Tomcat安装部署

1.实施准备

2.安装JDK,配置Java环境

3.安装配置Tomcat

4.优化启动速度

三、Tomcat虚拟主机配置

1.创建项目的配置文件

2.修改Tomcat主配置文件

3.客户端浏览器访问验证

三、Tomcat优化

1.Tomcat配置文件参数优化

2.Tomcat配置文件配置

总结


前言

如何部署Tomcat服务,根据生产环境实现多个虚拟主机的配置,最后的重点是进行压测,根据压测结果如何优化Tomcat服务及常见的内存溢出如何处理。

一、Tomcat简介

1、Tomcat介绍

Tomcat是一款免费的、开放源代码的Web应用服务器

是Apache软件基金会(Apache Software Foundation)Jakarta项目中的一个核心项目

由Apache、Sun和一些公司及个人共同开发而成

深受Java爱好者的喜爱,并得到部分软件开发商的认可,是目前比较流行的Web应用服务器

2.应用场景

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

3.Tomcat核心组件

Web容器:完成Web服务器的功能;比如响应TCP/IP、HTTP/HTTPS等协议、处理(nginx) 处理静态页面的应用交互

JSP容器:提供了多个以index.jsp为结尾的JAVA前端页面展示,而index.jsp中由很多HTML标签,HTML标签中会嵌套很多JAVA代码,这些JAVA代码,最终会被翻译为Servlet 代码,(而本身JSP容器不具备解析与分析代码的功能,所以会给交给Servlet容器)

Servlet 容器:Servlet 翻译index.jsp中这些java代码,执行一些servlet任务操作,比如数据库交互、加密、支付宝、人脸识别;处理完后,将这些数据返回给JSP ,通过jsp中的index.jsp 展示出来(JAVA)

4.Tomcat处理请求过程

处理请求详细过程如下: 

1.用户点击网页内容,请求被发送到本机8080端口,被那里监听的 Coyote(Tomcat 连接器框架/基础环境) HTTP/1.1 Connector(连接器,用于对接请求)获得;

2. 接受请求之后交给 container(容器)中的 engine (引擎)进行处理,engine 是做为容器运行的动力核心;

3.基于引擎支撑,容器中会跑很多 host 虚拟主机/项目,这些虚拟主机中也会有很多 context(当前程序所处的环境),此处的 context 功能可以理解为:将 JAVA 前端和 JAVA 后端连接的展示的枢纽;

4. Servlet 处理完后会返回给 context;

5.context 返回给 Engine 引擎;

6.Engine 返回给端口;

7. 最终通过映射端口的方式将页面展现给客户

二、Tomcat安装部署

在安装 Tomcat 之前必须先安装 JDK,因为 JDK 是 java 语言的软件包开发工具,其中包含了JVM(java 虚拟机),编写好的 java 源程序经过编译可形成 java 字节码,只要安装了 JDK ,就可用 JVM 解释这些字节码文件,从而保证了 java 的跨平台性

1.实施准备
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld.service
[root@localhost ~]# setenforce 0

2.安装JDK,配置Java环境

准备好安装包

apache-tomcat-9.0.16.tar.gz
jdk-8u201-linux-x64.rpm

使用rpm方式安装

[root@localhost ~]# rpm -ivh jdk-8u201-linux-x64.rpm

设置JDK环境变量

[root@localhost ~]# vim /etc/profile
...
#插入三行内容
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH

[root@localhost ~]# source /etc/profile

3.安装配置Tomcat

解压包apache-tomcat

[root@localhost ~]# tar zxvf apache-tomcat-9.0.16.tar.gz -C /opt/
[root@localhost ~]# cd /opt/

将该文件移动到/usr/local/下

[root@localhost opt]# mv apache-tomcat-9.0.16/ /usr/local/tomcat

主要目录说明

bin存放 Windows 或 Linux 平台上启动和关闭 Tomcat 的脚本文件
conf存放 Tomcat 服务器的各种全局配置文件,其中最重要的是的是 server.xml 和 web.xml
lib存放 Tomcat 运行需要的库文件(JARS),一般不作任何改动,除非连接第三方服务,比如 redis,那就需要添加相对应的 jar 包
logs存放 Tomcat 执行时的 LOG 文件(日志)
temp存放 Tomcat 运行时产生的文件
webappsTomcat 的主要 Web 发布目录(包括应用程序示例),是存放项目资源的目录
workTomcat 工作目录,存放 jsp 编译后产生的 class 文件,一般清除 Tomcat 缓存的时候会使用到

优化管理

[root@localhost ~]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
[root@localhost ~]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/

启动服务 

打开浏览器访问测试192.168.196.147:8080

4.优化启动速度

在生产环境中第一次启动 tomcat 可能会发现 tomcat 启动很慢,默认情况下可能需要几十秒,此时可以修改 jdk 参数进行优化

[root@localhost ~]# vim /usr/java/jdk1.8.0_201-amd64/jre/lib/security/java.security
...
securerandom.source=file:/dev/unrandom	      #117 进行修改
#/dev/random 和/dev/urandom 都是伪终端,但是/dev/urandom(随机值)提供的数据流更快
#因为默认系统会有很多外界因素的影响,造成随机性并不是很好,使用urandom优化可以提供更好的数据流
...

#重启生效
[root@localhost ~]# shutdown.sh 
[root@localhost ~]# startup.sh 

三、Tomcat虚拟主机配置

很多时候公司会有多个项目需要运行,那么肯定不可能是一台服务器上运行多个Tomcat服务,这样会消耗太多的系统资源。此时,就需要使用到Tomcat虚拟主机。例如现在新增两个域名www. kgc.com和www.zch.com,希望通过这两个域名访问到不同的项目内容

1.创建项目的配置文件

添加映射

创建对应的目录和文件

[root@localhost ~]# mkdir /usr/local/tomcat/webapps/zch 
[root@localhost ~]# mkdir /usr/local/tomcat/webapps/kgc
[root@localhost ~]# echo "this is kgc page!" > /usr/local/tomcat/webapps/kgc/index.jsp
[root@localhost ~]# echo "this is zch page!" > /usr/local/tomcat/webapps/zch/index.jsp

2.修改Tomcat主配置文件
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
...
              #大约在164行插入
      
        
        
      
        
        
...

[root@localhost ~]# shutdown.sh      #关闭 
[root@localhost ~]# startup.sh      #开启

配置详解

Host name主机名
appbaseTomcat程序工作目录,相对路径为webapps, 绝对路径为/usr/local/tomcat/webapps
unpackWARstomcat在webapps文件夹中发现war文件时,是否自动将其解压
autoDeploy设为true,则web.xml发生变化时,tomcat自动重新部署程序。实现这个功能必需允许后台处理
xmlValidation是否开启对XML文件的验证
xmlNamespaceAware是否启用xml命名空间,设置该值与xmlValidation为true,表示对web.xml文件执行有效性检验
docbaseWEB应用的目录(本地路径)
path设置访问的URI为WEB应用的根目录(URL路径), ""表示默认,加载系统中自带的类(class文件)
reloadable是否在程序有改动时重新载入

3.客户端浏览器访问验证

三、Tomcat优化

Tomcat 默认安装下的缺省配置并不适合生产环境,它可能会频繁出现假死现象需要重启,只有通过不断压测优化才能让它最高效率稳定的运行。优化主要包括三方面,分别为操作系统优化(内核参数优化),Tomcat配置文件参数优化,Java虚拟机(JVM)调优。

1.Tomcat配置文件参数优化

常用的优化相关参数如下:

redirectPort

如果某连接器支持的协议是HTTP,当接收客户端发来的HTTPS请求时,则转发至此属性定义的端口。

maxThreads

Tomcat使用线程来处理接收的每个请求,这个值表示Tomcat可创建的最大的线程数,即支持的最大并发连接数,默认值是 200。

minSpareThreads

最小空闲线程数,Tomcat 启动时的初始化的线程数,表示即使没有人使用也开这么多空线程等待,默认值是 10。

maxSpareThreads

最大备用线程数,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。默认值是-1(无限制)。一般不需要指定。

URIEncoding

指定 Tomcat 容器的 URL 编码格式,语言编码格式这块倒不如其它 Web服务器软件配置方便,需要分别指定。

connnectionTimeout

网络连接超时,单位:毫秒,设置为 0 表示永不超时,这样设置有隐患的。通常默认 20000 毫秒就可以。

enableLookups

是否反查域名,以返回远程主机的主机名,取值为:true 或 false,如果设置为 false,则直接返回 IP 地址,为了提高处理能力,应设置为 false。

disableUploadTimeout

上传时是否使用超时机制。应设置为 true。

connectionUploadTimeout

上传超时时间,毕竟文件上传可能需要消耗更多的时间,这个根据你自己的业务需要自己调,以使Servlet有较长的时间来完成它的执行,需要与上一个参数一起配合使用才会生效。

acceptCount

指定当所有可以使用的处理请求的线程数都被使用时,可传入连接请求的最大队列长度,超过这个数的请求将不予处理,默认为 100 个。

compression

是否对响应的数据进行GZIP压缩,off:表示禁止压缩;on:表示允许压缩(文本将被压缩)、force:表示所有情况下都进行压缩,默认值为 off,压缩数据后可以有效的减少页面的大小,一般可以减小 1/3 左右,节省带宽。

compressionMinSize

表示压缩响应的最小值,只有当响应报文大小大于这个值的时候才会对报文进行压缩,如果开启了压缩功能,默认值就是 2048。

compressableMimeType

压缩类型,指定对哪些类型的文件进行数据压缩。

noCompressionUserAgents=“gozilla, traviata”

对于以下的浏览器,不启用压缩

2.Tomcat配置文件配置
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
...
 minSpareThreads="50"                     #第71行插入
               enableLookups="false"
               disableUploadTimeout="true"
               acceptCount="300"
               maxThreads="500"
               processorCache="500"
               URIEncoding="UTF-8"
               compression="on"
               compressionMinSize="2048"
               compressableMimeType="text/html,text/xml,text/javascript,text/c
ss,text/plain,image/gif,image/jpg,image/png" />

[root@localhost ~]# /usr/local/tomcat/bin/shutdown.sh
[root@localhost ~]# /usr/local/tomcat/bin/startup.sh

总结

Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。
在安装 Tomcat 之前必须先安装JDK。server.xml 为 Tomcat 的主要配置文件,通过配置该文件,可以修改 Tomcat 的启动端口、网站目录、虚拟主机、开启https等重要功能。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/336494.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号