Tomcat 部署及优化

一、Tomcat 概述

1. Tomcat介绍

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

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

2.Tomcat 核心组件

(1):web容器:完成web服务器的功能。

(2):Servlet容器:名字为catalina,用于处理Servlet代码。

(3):JSP 容器:用于将 JSP动态网页翻译成Servlet代码。

3.Tomcat请求处理

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

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

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

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

4.Tomcat 功能组件 

(1)Server

        Server元素在最顶层,代表整个Tomcat容器,有且只有一个。因此它必须是server.xml中唯一一个最外层的元素。Server的主要任务,就是提供一个接口让客户端能够访问到这个Service集合,同时维护它所包含的所有的Service的声明周期,包括如何初始化、如何结束服务、如何找到客户端要访问的Service。

(2)Service

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

(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。

(5)Host

      Host是Engine的子容器。Engine组件中可以内嵌1个或多个Host组件,每个Host组件代表Engine中的一个虚拟主机。Host组件至少有一个,且其中一个的name必须与Engine组件的defaultHost属性相匹配。Host虚拟主机的作用,是运行多个Web应用(一个Context代表一个Web应用),并负责安装、展开、启动和结束每个Web应用。

(6)Context

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

5.Container 结构分析

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

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

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

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

(4):Servlet,容器的最底层。负责对象实例的创建、执行和销毁功能。

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

总结:
tomcat  server
service (connector 、container)
container(engine 、host 、context 、servlet)

6.Tomcat数据流向

二、Tomcat 服务部署


[root@localhost ~]# systemctl stop firewalld

<安装JDK>
[root@localhost ~]# tar zxvf jdk-8u171-linux-x64.rpm

或者[root@localhost ~]# yum -y install  java

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

<设置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

<安装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   (启动tomcat)
[root@localhost ~]# netstat -anpt | grep java
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      5528/java           
tcp6       0      0 :::8080                 :::*                    LISTEN      5528/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      5528/java    

备注:

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

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

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


 [root@localhost ~]# cd /usr/local/tomcat/    (主目录)
[root@localhost tomcat]# ls
bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work

备注:

  • bin:存放启动关闭Tomcat脚本文件
  • conf:存放tomcat全局配置文件。最主要是server.xml和web.xml
  • lib: 存放运行的文件
  • log:日志文件
  • webapps:web发布的目录和应用程序
  • work:存放jsp编译后的class文件

建立web站点
[root@localhost tomcat]# cd webapps/
[root@localhost webapps]# mkdir www
[root@localhost webapps]# cd www
[root@localhost www]# vim index.jsp
  my web

 修改server.xml文件
[root@localhost ~]# vim /usr/local/tomcat/ conf/server.xml
    <Context docBase="/usr/local/tomcat/webapps/www"   path=" "  reloadable="ture"  />

关闭,在启动
[root@localhost conf]# /usr/local/tomcat/bin/shutdown.sh 
[root@localhost conf]# /usr/local/tomcat/bin/startup.sh

三、Tomcat配置与优化

1.虚拟主机 

(基于域名)

创建www和bbs文件
[root@localhost ~]# mkdir /usr/local/tomcat/webapps/www
 [root@localhost ~]# mkdir /usr/local/tomcat/webapps/bbs
[root@localhost ~]# echo "www.benet.com"> /usr/local/tomcat/webapps/www/index.jsp  
[root@localhost ~]# echo "bbs.benet.com"> /usr/local/tomcat/webapps/bbs/index.jsp

修改主配置文件
[root@localhost ~]# vim /usr/local/tomcat/ conf/server.xml
<Host name="bbs.benet.com"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
  <Context docBase="/usr/local/tomcat/webapps/bbs" path=""  reloadable="ture"  />
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

 <Host name="www.benet.com"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

<Context docBase="/usr/local/tomcat/webapps/www" path=" "   reloadable="ture"  />

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

备注:

  • <Host name="bbs.test.com"  appBase="/usr/local/tomcat/webapps"
  • name="bbs.test.com"  网站的服务名称,做基于域名的虚拟主机时,这个参数需要设置如果要做基于端口的虚拟主机,此处的值应修改为原来的localhost
  • appBase="/usr/local/tomcat/webapps"    站点目录,这个位置可以不用修改
  • path=""   虚拟目录的目录名,URL/path,指的是斜杠后跟的字符串
  • reloadable="true"  reloadable=true时 当web.xml或者class有改动的时候都会自动重新加载不需要从新启动服务


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

win测试

2.Tomcat优化 

win
<安装apachejmeter>
<安装jdk-8-windos>

[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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值