Tomcat部署及优化

一.Tomcat概述

1.Tomcat介绍

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

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

2.Tomcat核心组件

        通常意义上的Web服务器接受请求后,只是单纯地响应静态资源(如HTML文件、图片文件等),不能在后端进行一定的处理操作。Tomcat是Apache下的一个子项目,它具备Web服务器的所有功能,不仅可以监听接受请求并响应静态资源,而且可以在后端运行特定规范的Java代码Servlet,同时将执行的结果以HTML代码的形式返回客户端。

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

  1. web容器:完成Web服务器的功能
  2. Servlet容器:名字为catalina,用于加载和运行Servlet和JSP文件,当请求到达Web容器时,Servlet引擎会将请求转发给相应的Servlet或JSP进行处理。
  3. JSP容器:用于将JSP动态网页翻译成Servlet代码

JavaServlet

        servlet是Java Servlet的简称,可以理解为是一个服务连接器,是用Java编写的服务器端程序,具有独立于平台和协议的特性,简单的理解:Servlet就是一个中间件,包含了接口和方法,将客户端和数据库连接,从而实现动态网页的创建。

JSP容器

        JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入java代码。标签通常以<% 开头,以%>结束。

JSP是一种Java servlet,主要用于实现 Java web应用程序的用户界面部分。

JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。

3.Tomcat请求处理

用户在浏览器中输入网址,请求被发送到本机端口8080,被在那里监听的Connector获得;

Connector把该请求交给它所在的Service 的 Engine (Container)来处理,并等待Engine

的回应;

请求在Engine、Host、Context和 Wrapper 这四个容器之间层层调用,最后在Servlet 中执行对应的业务逻辑、数据存储等。

执行完之后的请求响应在Context、Host、Engine 容器之间层层返回,最后返回给Connector,并通过Connector返回给客户端。

4.Tomcat功能柜组件结构

Tomcat核心组件有6个,分别为Tomcat有Server、Service、Connector、Engine、Host和Context等

(1)Server

Server元素在最顶层,代表整个Tomcat容器,因此它必须是server.xml中唯一一个最外层的元素。一个Server元素中可以有一个或多个Service元素。

Server的主要任务,就是提供一个接口让客户端能够访问到这个Service集合,同时维护它所包含的所有的Service的声明周期,包括如何初始化、如何结束服务、如何找到客户端要访问的Service。

  1. (2)Service

    Service的作用,是在Connector和Engine外面包了一层,把它们组装在一起,对外提供服务。一个Service可以包含多个Connector,但是只能包含一个Engine;其中Connector的作用是从客户端接收请求,Engine的作用是处理接收进来的请求。Tomcat可以提供多个Service,不同的Service监听不同的端口。

  2. (3)Connector

    Connector的主要功能,是接收连接请求,创建Request和Response对象用于和请求端交换数据;然后分配线程让Engine来处理这个请求,并把产生的Request和Response对象传给Engine。通过配置Connector,可以控制请求Service的协议及端口号。

    (4)Engine

    Engine组件在Service组件中有且只有一个;Engine是Service组件中的请求处理组件。Engine组件从一个或多个Connector中接收请求并处理,并将完成的响应返回给Connector,最终传递给客户端。

    实际上,Engine、Host和Context都是容器,但它们不是平行的关系,而是父子关系:Engine包含Host,Host包含Context。

  3. (5)Host

  4. Host是Engine的子容器。Engine组件中可以内嵌1个或多个Host组件,每个Host组件代表Engine中的一个虚拟主机。Host组件至少有一个,且其中一个的name必须与Engine组件的defaultHost属性相匹配。

    Host虚拟主机的作用,是运行多个Web应用(一个Context代表一个Web应用),并负责安装、展开、启动和结束每个Web应用。

  5. (6)Context

    Context元素代表在特定虚拟主机上运行的一个Web应用。每个Web应用基于WAR文件,或WAR文件解压后对应的目录(这里称为应用目录)。Context是Host的子容器,每个Host中可以定义任意多的Context元素。

  6. 5.Container结构分析:

  7. 每个 Service 会包含一个 Container容器。在Container内部包含了4个子容器:

  8. 4个子容器的作用分别是:

  9. 1:Engine:引擎,用来管理多个虚拟主机,一个Service 最多只能有一个Engine;

    2:Host:代表一个虚拟主机,也可以叫站点,通过配置 Host 就可以添加站点;

    3:Context:代表一个 web应用,包含多个Servlet封装器;

    4:wrapper:封装器,容器的最底层。每一wrapper 封装着一个Servlet,负责对象实例的创建、执行和销毁功能。

  10. Engine、Host、Context和 wrapper,这四个容器之间属于父子关系。

    容器由一个引擎可以管理多个虚拟主机。每个虚拟主机可以管理多个web应用。每个web应用会有多个Servlet封装器。

  11. 6.Tomcat数据流向

二.Tomcat部署及优化

 1.下载并安装JDK

        再部署Tomcat之前必须安装好JDK,因为JDK是Tomcat运行的必要环境。可在下面网址下载JDKJava Downloads | Oracle

(1)安装JDK        

        软件包下载后,将其放到root目录下

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

        jdk安装目录在/usr/jdk1.8.0_171-amd64

(2)编辑/etc/profile设置 jdk 的环境变量

[root@localhost ~]# vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64 
export CLASSPATH=$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH

[root@localhost ~]# source /etc/profile    //使环境变量生效
[root@localhost ~]# java -version          //查看JDK版本号

2.安装启动Tomcat

[root@localhost ~]# tar zxvf apache-tomcat-9.0.8.tar.gz 
[root@localhost ~]# mv apache-tomcat-9.0.8 /usr/local/tomcat
[root@localhost ~]# /usr/local/tomcat/bin/startup.sh 

[root@localhost ~]# netstat -anpt | grep java
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      9591/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      9591/java           
tcp6       0      0 :::8080                 :::*                    LISTEN      9591/java 

备注:

8005端口是用于命令行关闭Tomcat服务

8009 Tomcat服务器通过Connector连接器组件与客户程序建立连接使用的端口

8080是Tomcat的web服务端默认口号

3.访问Tomcat服务器

确保防火墙允许相应规则通过,测试时可关闭防火墙,浏览器打开 http://192.168.9.236:8080 进行访问会出现 Tomcat 主页

 4.Tomcat目录结构

[root@localhost ~]# ll /usr/local/tomcat/
总用量 92
drwxr-x---. 2 root root  4096 6月  11 08:04 bin
drwx------. 3 root root   254 6月  11 08:04 conf
drwxr-x---. 2 root root  4096 6月  11 08:04 lib
-rw-r-----. 1 root root 57092 4月  28 2018 LICENSE
drwxr-x---. 2 root root   197 6月  11 08:04 logs
-rw-r-----. 1 root root  1804 4月  28 2018 NOTICE
-rw-r-----. 1 root root  6852 4月  28 2018 RELEASE-NOTES
-rw-r-----. 1 root root 16246 4月  28 2018 RUNNING.txt
drwxr-x---. 2 root root    30 6月  11 08:04 temp
drwxr-x---. 7 root root    81 4月  28 2018 webapps
drwxr-x---. 3 root root    22 6月  11 08:04 work

备注:

  • 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 缓存的时候会使用到。

5.Tomcat优化

(1)优化Tomcat服务启动时间

[root@localhost ~]# vim /usr/java/jdk1.8.0_171-amd64/jre/lib/security/java.security

securerandom.source=file:/dev/urandom		##已经存在该参数,就是在random前加个u

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

(2)修改/usr/local/tomcat/conf/server.xml文件

[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml

<Connector port="8080" protocol="HTTP/1.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,tex t/plain,image/gif,image/jpg,image/png" />

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

  • 30
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值