Tomcat服务部署及优化的实现

目录
  • 一、Tomcat介绍
  • 二、配置文件介绍及核心组件
    • 2.1.Tomcat核心组件
    • 2.2.Tomcat处理请求过程
    • 2.3.配置文件
  • 三、Tomcat服务部署
    • 1.安装jdk
    • 2.设置JDK环境变量
    • 3.安装tomcat
    • 4.启动tomcat
    • 5.在网页中查看
    • 6.将tomcat添加到服务
  • 四、Tomcat服务优化
    • 4.1.Tomcat 虚拟主机配置
    • 4.2.Tomcat配置文件参数优化

一、Tomcat介绍

  • 免费的、开放源代码的Web应用服务器
  • Apache软件基金会(Apache Software Foundation)Jakarta项目中的一个核心项目
  • 由Apache、Sun和一些公司及个人共同开发而成
  • 深受Java爱好者的喜爱,并得到部分软件开发商的认可
  • 目前比较流行的Web应用服务器

二、配置文件介绍及核心组件

2.1.Tomcat核心组件

Tomcat 由一系列的组件构成,其中核心的组件有三个:

  • Web 容器:完成 Web 服务器的功能HTTP HTTPS请求的接受和响应。
  • Servlet 容器:由名称为 catalina的脚本来处理 Servlet 代码(具体的一个任务,从数据库中拿取数据给与前端)。
  • JSP 容器:用于将 JSP 动态网页翻译成 Servlet 代码 index.html index.php index.jsp。

多实例:多实例就是在一台服务器上同时开启多个不同的服务端口,同时运行多个服务进程,这些服务进程通过不同的socket监听不同的服务端口来提供服务。

引擎:一般而言,引擎是一个程序或一套系统的支持部分。常见的程序引擎有游戏引擎、搜索引擎、杀毒引擎等。

2.2.Tomcat处理请求过程

 详细过程:

  • 用户在浏览器中输入该网址,请求被发送到本机端口8080,被在那里监听的Coyote HTTP/1.1 Connector获得;
  • Connector把该请求交给它所在的Service的Engine (Container) 来处理,并等待Engine的回应;
  • Engine获得请求localhost/test/index.jsp,匹配所有的虚拟主机Host;
  • Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机),名为localhostHost获得请求/test/index.jsp,匹配它所拥有的所有Context。Host匹配到路径为/test的Context(如果匹配不到就把该请求交给路径名为“”的Context去处理);
  • path="/test"的Context获得请求/ index. jsp,在它的mapping table中寻找出对应的Servlet。Context 匹配到URLPattern为* .jsp的Servlet,对应于JspServlet类;
  • 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet()或doPost(),执行业务逻辑、数据存储等
  • Context把执行完之后的HttpServletResponse对象返回给Host;
  • Host把HttpServletResponse对象返回给Engine;
  • Engine把HttpServletResponse对象返回Connector;
  • Connector把HttpServletResponse对象返回给客户Browser;

2.3.配置文件

(1)主要目录说明

  • bin :存放启动和关闭Tomcat 的脚本文件,比较常用的是catalina.sh、startup.sh、 shutdown.sh 三个文件
  • conf :存放Tomcat 服务器的各种配置文件,比较常用的是server.xml、context.xml、tomcat-users.xml web. xml 四个文件.
  • lib :存放Tomcat服务器的jar 包,一般不作任何改动,除非连接第三方服务,比如redis, 那就需要添加相对应的jar包
  • logs :存放Tomcat 日志
  • temp :存放Tomcat 运行时产生的文件
  • webapps :存放项目资源的目录
  • work:Tomcat 工作目录,一般清除 Tomcat 缓存的时候会使用到

(2)Tomcat配置文件详解

① catalina.policy:权限控制配置文件
② catalina.properties:Tomcat的属性配置文件
③ context.xml:上下文配置文件
④ logging.properties:日志相关配置文件
⑤ server.xml:主配置文件,通过配置文件,可以修改tomcat的启动端口、网站目录、虚拟主机、开启https等功能
⑥ tomcat-user.xml/.xsd:管理用户配置文件
⑦ web.xml:Tomcat的servlet、servlet-mapping、filter、MIME等相关配置

三、Tomcat服务部署

1.安装jdk

在部署Tomcat之前必须安装好jdk,因为jdk是Tomcat运行的必要环境

1.关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

2.将安装 Tomcat 所需软件包传到/opt目录下
cd /opt

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

3.切换至/opt下,安装JDK
cd /opt
rpm -ivh jdk-8u201-linux-x64.rpm 

2.设置JDK环境变量

1.修改配置文件
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

2.刷新配置文件
source /etc/profile

3.安装tomcat

1.切换至/opt下,解压tomcat包
cd /opt
tar -zxf apache-tomcat-9.0.16.tar.gz 

2.将解压后的包拷贝至/usr/local/下并重命名
mv apache-tomcat-9.0.16 /usr/local/tomcat 

4.启动tomcat

1.为tomcat服务创建软链接
ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/

2.开启服务或者关闭服务
startup.sh
shutdown.sh

3.查看是否开启成功
netstat -natp | grep 8080

5.在网页中查看

http://192.168.250.70:8080

6.将tomcat添加到服务

1.先关闭服务
shutdown.sh

2.添加用户设置属主属组
useradd -s /sbin/nologin tomcat
chown tomcat:tomcat tomcat/ -R

3.新建服务文件
vim /etc/systemd/system/tomcat.service
[Unit]
Description=Tomcat
#After=syslog.target network.target remote-fs.target nss-lookup.target
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
RestartSec=3
PrivateTmp=true
User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target

4. 重新加载服务,并开启,查看是否成功启动
systemctl daemon-reload
systemctl start tomcat
netstat -ntap |grep 8080

四、Tomcat服务优化

4.1.Tomcat 虚拟主机配置

1.创建 kgc 和 benet 项目目录和文件

1.添加地址映射
vim /etc/hosts
192.168.250.70 www.kgc.com www.benet.com

2.创建目录并且写入文件
mkdir /usr/local/tomcat/webapps/kgc
mkdir /usr/local/tomcat/webapps/benet
echo "this is kgc page\!" > /usr/local/tomcat/webapps/kgc/index.jsp
echo "this is benet page\!" > /usr/local/tomcat/webapps/benet/index.jsp

2、修改 Tomcat 主配置文件

<Host name="www.kgc.com"  appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
   <Context docBase="/usr/local/tomcat/webapps/kgc" path="" reloadable="true" />
       </Host>

<Host name="www.benet.com"  appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
   <Context docBase="/usr/local/tomcat/webapps/benet" path="" reloadable="true" />
       </Host>

3.关闭tomcat服务,再开启tomcat服务

shutdown.sh
tartup.sh

4.客户机浏览器验证访问验证

echo "192.168.250.60 www.kgc.com www.benet.com" >> /etc/hosts

浏览器访问 http://www.kgc.com:8080
浏览器访问 http://www.benet.com:8080

4.2.Tomcat配置文件参数优化

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

常用的优化参数:

  • [ maxThreads]    Tomcat 使用线程来处理接收的每个请求,这个值表示Tomcat可创建的最大的线程数,默认值是200。
  • [minSpareThreads]    最小空闲线程数,Tomcat启动时的初始化的线程数,表示即使没有人使用也开这么多空线程等待,默认值是 10。
  • [maxSpareThreads]    最大备用线程数,一旦创建的钱程超过这个值,Tomcat就会关闭不再需要的socket线程。默认值是-1(无限 制)。一般不需要指定。
  • [URIEncoding]&nbsp;   指定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”]    对于以下的浏览器,不启用压缩。
<Connector port="8080" protocol="HTTP/11.1"
connectionTimeout="20000"
redirectPort="8443"
minSpareThreads="50"
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/css,text/plain,image/gif,image /jpg,image/png"/>

到此这篇关于Tomcat服务部署及优化的实现的文章就介绍到这了,更多相关Tomcat服务部署及优化内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Docker容器上用DockerFile部署多个tomcat服务的步骤

    1. [admin@JD ~]$ cd opt #进入根目录下的opt 里 2. [admin@JD opt]$ mkdir web #创建Web 文件夹 3. [admin@JD web]$ cd web/ #进入web文件夹 4. [admin@JD web]$ touch Dockerfile #创建一个Dockerfile文件夹 名字不能错必须是这个名字否者检测不到 5. 利用三方工具将 tomcat 和 jdk的 上传到Web文件夹 6. [admin@JD web]$ vim Doc

  • 详解将Web项目War包部署到Tomcat服务器基本步骤

    1. 常识: 1.1 War包 War包一般是在进行Web开发时,通常是一个网站Project下的所有源码的集合,里面包含前台HTML/CSS/JS的代码,也包含Java的代码. 当开发人员在自己的开发机器上调试所有代码并通过后,为了交给测试人员测试和未来进行产品发布,都需要将开发人员的源码打包成War进行发布. War包可以放在Tomcat下的webapps或者word目录下,随着tomcat服务器的启动,它可以自动被解压. 1.2 Tomcat服务器 Tomcat服务器是一个免费的开放源代码

  • spring Boot打包部署到远程服务器的tomcat中

    前言 Spring Boot项目一般都是内嵌tomcat或者jetty服务器运行,很少用war包部署到外部的服务容器,即使放到linux中,一般也是直接启动Application类,但是有些时候我们需要部署到外部的服务器,这对于Spring Boot来说却有点麻烦 下面话不多说了,来一起看看详细的介绍吧. 环境声明: jdk:1.8 服务器:阿里云,ubuntu 16.04 springBoot:1.5.9.RELEASE 目的 将springBoot 打包到远程服务器的tomcat中. pom

  • linux服务器部署tomcat和Nginx的教程

    项目需要,申请了三台测试机器,好在测试机里面光秃秃的什么都没有,我就可以好好的学习一把玩一把了!接下来以图文的形式讲一下我所碰到的坑以及小小的收获吧! 一.准备工作 首先你得有一台可以玩的linux服务器,知道用户名和密码,然后你需要在windows电脑上安装两个可以连上linux服务器的工具,Xshell 5和Xftp 5,安装教程不多说,补图说明如何连上服务器: xshell连接界面如下,输入好主机ip后点击确定,xshell会弹出窗口输入用户名和密码即可连接成功! xftp连接界面如下,填

  • 基于IDEA部署Tomcat服务器的步骤详解

    简介 ​ 基于IDEA部署Tomcat服务器,并在上面创建第一个servlet程序,实现前后端交互.然后做一个简单的四则运算计算器. ​ 本程序基于2021年最新版IDEA,解决的与老版本配置不同问题 idea2021 最新 jihuo 教程(无线重制使用) 步骤一 安装Tomcat(前提已经安装好JDK) ​ 1.Tomcat是免费的服务器,直接在官网下载即可 ​ 2.压缩包下载好后直接将其解压到指定路径下 ​ 3.在安装路径下有一个bin文件夹,在里面找到startup.bat文件,双击运行

  • IDEA部署JavaWeb项目到Tomcat服务器的方法

    IDEA创建一个传统JAVA WEB项目(不使用maven构建) 方法一 File --> NEW --> Project --> Java (勾选Web Application) 方法二 File --> NEW --> Project --> Java Enterprise(勾选Web Application) IDEA部署JAVA WEB项目 IDEA 并非把项目放到 tomcat 的 webapp目录中,而项目还是在源项目目录中,IDEA采用了一种无入侵Tomc

  • Tomcat服务部署及优化的实现

    目录 一.Tomcat介绍 二.配置文件介绍及核心组件 2.1.Tomcat核心组件 2.2.Tomcat处理请求过程 2.3.配置文件 三.Tomcat服务部署 1.安装jdk 2.设置JDK环境变量 3.安装tomcat 4.启动tomcat 5.在网页中查看 6.将tomcat添加到服务 四.Tomcat服务优化 4.1.Tomcat 虚拟主机配置 4.2.Tomcat配置文件参数优化 一.Tomcat介绍 免费的.开放源代码的Web应用服务器 Apache软件基金会(Apache Sof

  • Idea部署tomcat服务实现过程图解

    先配置项目的artifacts 配置启动项 创建一个tomcat服务 选择需要启动的服务(上面配置的artifacts) 启动服务 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.

  • Linux系统上实现定时重启Tomcat服务脚本介绍

    目录 一.创建Shell脚本 二.修改文件权限 三.建立定时任务 四.定时任务描述语法 1. 星号(*) 2. 逗号(,) 3. 斜杠(/) 4. 横杠(-) 五.其他 因为使用阿里云部署服务器应用时,Tomcat服务经常由于内存不足出现OutOfMemoryError异常的情况.经常过几天就需要重启一次服务器,更要命的是不知道什么时候会由于内存不足导致无法访问,如果重启不及时严重影响系统体验. 为了解决上述问题,一方面是对tomcat配置做一些优化,网上有很多文章讲解如何优化Tomcat内存设

  • harbor可视化私有镜像仓库环境及服务部署示例

    目录 harbor 简介 Harbor 和 Registry 的比较 harbor 案例演示 环境准备 服务部署 上传本地镜像至harbor 拉去 harbor 上的 tomcat 镜像至本地 harbor 简介 在实际生产运维中,往往需要把镜像发布到几十.上百或更多的节点上.这时单台 Docker 主机上镜像已无法满足,项目越来越多,镜像越来越多,都放到一台 Docker 主机上是不行的,我们需要一个镜像Git仓库一样系统来统一管理镜像.这里介绍的是一个企业级镜像仓库Harbor,将作为我们容

  • 详解CentOS安装tomcat并且部署Java Web项目

    1.准备工作 a.下载tomcat linux的包,地址:http://tomcat.apache.org/download-80.cgi,我们下载的版本是8.0,下载方式如图: b.因为tomcat的安装依赖于Java jdk,所以我们需要在判断linux系统下面是否安装jdk b.1 使用(Xshell)连接到Linux系统下面 b.2 输入命令:java -version,如果显示jdk版本号,则证明已经安装,如果不显示,则证明没有安装,如果没有安装,请参考下面地址进行安装:http://

  • Java+Tomcat 环境部署及安装过程图解

    下面在Centos7进行安装Java+Tomcat,网上的很多文章,我在部署中都有些问题,下面是我自己总结的一个安装过程! 安装Java环境 首先,我们先到Java官网下载JDK 这里我下载jdk1.8版本的 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 点击 Accept License Agreement 选择好版本进行下载,需要注册Oracle账户登陆下载! 将下载的

  • 在Docker中利用Tomcat快速部署web应用的方法示例

    在学习了docker的基本操作之后,我们就可以尝试在我们的container中部署一些基本的应用了. 这篇文章我们就来说一下怎么在docker中快速部署一个web应用. 首先肯定是要机器中安装了docker,如果没安装就是用yum install -y docker 命令安装一下 yum install -y docker 既然是部署web应用,那么当然少不了Tomcat了,所以我们应该先拉取Tomcat镜像.命令如下 docker pull tomcat 这个镜像有点大,所以可以事先拉取好,节

  • Tomcat服务配置和自启动详解

    如果我们使用war 包进行部署项目的时候,需要把包放进Tomcat的目录下,为了使我们的服务能够在服务器重启的时候自动启动起来,我们需要把Tomcat设置成自起服务. 配置 Tomcat 服务 新建服务脚本 [root@localhost ~]# vim /etc/init.d/tomcat 添加脚本内容 #!/bin/bash # description: Tomcat7 Start Stop Restart # processname: tomcat7 # chkconfig: 234 20

  • SpringBoot内置tomcat调优测试优化

    问题 怎么配置springBoot 内置tomcat,才能使得自己的服务效率更高呢? 基础配置 Spring Boot 能支持的最大并发量主要看其对Tomcat的设置,可以在配置文件中对其进行更改.我们可以看到默认设置中,Tomcat的最大线程数是200,最大连接数是10000. 这个不同SpringBoot 版本可能有所细微差别.本文测试基于Springboot 2.0.7.RELEASE 默认配置 /** * Maximum amount of worker threads. */ priv

随机推荐