Tomcat部署、优化及搭建虚拟主机

Tomcat介绍

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。

Tomcat核心组件

  • web容器
    web服务器
  • Servlet容器
    名为catalina,处理Servlet代码
  • JSP容器
    将JSP动态网页翻译成Servlet代码

Tomcat处理请求过程

  1. 请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/11.1Connector获得。
  2. Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应。
  3. Engine获得请求localhost/yy/index.JSP匹配它所拥有的所有虚拟主机Host。
  4. Engine匹配到名为localhost的Host。 即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机
  5. localhost Host获得请求/yy/index.JSP,匹配它所拥有的所有Context。
  6. Host匹配到路径为/yy的Context。如果匹配不到,就把该请求交给路径名为Context去处理。
  7. path=" /yy"的Context获得请求/index.JSP, 在它的mapping table中寻找对应的Servlet。
  8. Context匹配到URL PATTERN为*.JSP的Servlet,对应于JSPServlet类。
  9. 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JSPServlet 的doGet()或doPost()方法。
  10. Context把执行完了之后的HttpServletResponse对象返回给Host.
  11. Host把HttpServletResponse对象返回给Engine。
  12. Engine把HttpServletResponse对象返回给Connector.
  13. Connector把HttpServletResponse对象返回给客户browser。

JDK介绍

  • JDK是Java语言的软件开发工具包
  • JDK是Tomcat运行的必要环境
  • 根据计算机硬件配置,选择安装包

Tomcat目录结构

在这里插入图片描述

Tomcat安装部署

[root@localhost opt]# rpm -ivh jdk-8u201-linux-x64.rpm
[root@localhost java]# cd /usr/java/
[root@localhost java]# ls
default  jdk1.8.0_201-amd64  latest
[root@localhost java]# cd jdk1.8.0_201-amd64/
[root@localhost jdk1.8.0_201-amd64]# pwd
/usr/java/jdk1.8.0_201-amd64

[root@localhost jdk1.8.0_201-amd64]# java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)

[root@localhost jdk1.8.0_201-amd64]# 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 jdk1.8.0_201-amd64]# source /etc/profile
[root@localhost jdk1.8.0_201-amd64]# java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)


[root@localhost opt]# tar zxvf apache-tomcat-9.0.16.tar.gz -C /usr/local
[root@localhost opt]# cd /usr/local/
[root@localhost local]# mv apache-tomcat-9.0.16 tomcat9
[root@localhost local]# ln -s /usr/local/tomcat9/bin/startup.sh /usr/bin
[root@localhost local]# ln -s /usr/local/tomcat9/bin/shutdown.sh /usr/bin

[root@localhost local]# setenforce 0
[root@localhost local]# iptables -F
[root@localhost local]# startup.sh
[root@localhost local]# netstat -ntap | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      13815/java

在这里插入图片描述

Tomcat优化

参数详解:

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”:对于以下的浏览器,不启用压缩。

Tomcat启动时间优化

缩短启动时间的命令

[root@localhost local]# cd /usr/java/jdk1.8.0_201-amd64/jre/lib/security
[root@localhost security]# vim java.security
securerandom.source=file:/dev/urandom      '将random修改为urandom'
[root@localhost security]# startup.sh

此时打开Tomcat站点速度会快上许多

虚拟主机

1.安装DNS服务,添加两个解析地址

在这里插入图片描述
2.添加两个站点主页

[root@localhost security]# cd /usr/local/tomcat9/webapps
[root@localhost webapps]# mkdir cllt juejue
[root@localhost webapps]# vim cllt/index.jsp
<h1>this is cllt web</h1>
[root@localhost webapps]# vim juejue/index.jsp
<h1>this is juejue web</h1>

3.修改Tomcat主配置文件

[root@localhost webapps]# vim /usr/local/tomcat9/conf/server.xml     
<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.cllt.com"  appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
        <Context docBase="/usr/local/tomcat9/webapps/cllt" path="" reloadable="true"/>
        </Host>
        <Host name="www.juejue.com"  appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
        <Context docBase="/usr/local/tomcat9/webapps/juejue" path="" reloadable="true"/>
      </Host>
      </Engine>	   '插入到此行上方'
  </Service>
</Server>
[root@localhost webapps]# shutdown.sh
[root@localhost webapps]# startup.sh 

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值