Tomcat 部署及优化

Tomcat 核心组件

Tomcat是 Apache 下的一个子项目,它具备 Web 服务器的所有功能,不仅可以监听接受请求并响应静态资源,而且可以在后端运行特定规范的 Java 代码 Servlet,同时将执行的结果以 HTML 代码的形式返回客户端。Tomcat 由一系列的组件构成,其中核心的组件有三个。

Web 容器:完成 Web 服务器的功能。

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

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

Tomcat 请求处理

1.用户在浏览器中输入网址 localhost:8080/testindexjsp,请求被发送到本机端口 8080,被在那里监听的 Coyote HTTP/1.1 Connector 获得;

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

3.Engine 获得请求 localhost/test/index.jsp,匹配所有的虚拟主机 Host;

4.Engine 匹配到名为 localhost 的 Host(即使匹配不到也把请求交给该 Host 处理,因为该 Host 被定义为该 Engine 的默认主机),名为 localhost 的 Host 获得请求/testindex.jsp

5.path="/test"的 Context 获得请求/index.jsp,在它的 mapping table 中寻找出对应的Servlet。 Context 匹配到 URL Pattem 为*.jsp 的 Servlet,对应于 JspServlet 类;

6.构造 HttpServletRequest 对象和 HttpServletResponse 对象,作为参数调用 JspServlet的 doGet()或 doPost0),执行业务逻辑、数据存储等;

7.Context 把执行完之后的 HttpServletResponse 对象返回给 Host;

Tomcat 服务部署

在部署 Tomcat 之前必须安装好 JDK,因为 JDK是 Tomcat 运行的必要环境。JDK 的安装相对比较简单,版本有很多,本章选择基于 linux64 位 RPM 版本。

下载完安装包后,将其上传到服务器/root 目录下,执行安装命令。

rpm -ivh jdk-8u171-linux-x64.rpm

上面显示安装完成,jdk安装目录在lusr/iaval/idk1.8.0 171-amd64,,编辑/etc/profile文件,设置jdk 的环境变量。具体操作如下。

vim /etc/profile
exDort JAVA HOME=/usriava/idk1.8.0 171-amd64
exDort CLASSPATH=SJAVA HOMEЛibtools.jar:SJAVA HOMEЛlib/dt.iar
expOrt PATH=SJAVA HOME/bin:SPATH

source /etc/profile

ava -version  //使环境变量生效

安装 Tomcat 服务

wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.8/bin/apache-tomcat-9.0.8.tar.gz

tar zxf apachtomcat-9.0.8.tar.gz
tar zxf apache-tomcat-9.0.8.tar.gz
/usr/local/tomcat/bin/startup.sh   //启动 Tomcat

优化 Tomcat 服务启动时间

査看日志会发现 Tomcat 第一次启动很慢,默认情况下都需要几十秒。修改 JDK 参数可以改善该状况,打开/usr/iavalidk1.8.0 171-amd64/ire/ib/security/iava.security 文件,找到如下内容:securerandom.source=file:/dev/random修改securerandom.source=file:/dev/urandom。然后重启 Tomcat 就会发现启动时间变短很多。

[root@localhost conf]# vim /usr/java/jdk1.8.0 171-amd64/jre/libsecurity/java.security
securerandom.source=fle:/dev/urandom

/usr/local/tomcatbin/shutdown.sh   //关闭 Tomcat
/usr/local/tomcatbin/startup.sh    //启动 Tomcat

Tomcat 目录结构

执行 l/usr/local/tomcat命令即可査看 Tomcat 安装后目录结构

bin 目录:用于存放启动和关闭 Tomcat 的脚本文件,比较常用的是 catalina.shstartup.shshutdown.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 缓存的时候会使用到

Tomcat 配置与优化

mkdir /usr/local/tomcat/webappsh/www
echo "This is www page!"> /usr/localtomcatwebapps/wwwindex.jsp
mkdir /usr/local/tomcat/webapps/bbs
echo "This is bbs page!'> /usr/local/tomcat/webapps/bbslindex.jsp

修改 Tomcat 主配置文件

vim /usr/local/tomcat/conf/server.xm

/usr/local/tomcatbin/shutdown.sh  
/usr/local/tomcatbin/startup.sh    
相关推荐
王会举20 分钟前
Java实现日志全链路追踪.精确到一次请求的全部流程
java·log4j
马剑威(威哥爱编程)33 分钟前
使用 Mybatis 时,调用 DAO接口时是怎么调用到 SQL 的?
java·sql·mybatis
三村阿明1 小时前
Java多线程
java·开发语言·多线程·reentrantlock
Ephemeroptera1 小时前
IT专业入门,高考假期预习指南
java·c语言·网络·python·高考
菜鸟蹦迪1 小时前
java技术:knife4j实现后端swagger文档
java·开发语言
小怪瘦791 小时前
Vue3使用PDFJS将后端查到的二进制数据转为图片
java·前端·javascript
2401_828014951 小时前
无线领夹麦克风哪个牌子好?揭秘领夹麦克风哪个品牌音质最好
java·c++·python·php
不见长安见晨雾2 小时前
Java中反射的使用
java·开发语言
徐浩刚2 小时前
Linux环境下快速部署Spring Boot应用:高效命令组合实践
java·linux
程序员黄同学2 小时前
什么是 JVM( Java 虚拟机),它在 Java 程序执行中扮演什么角色?
java·开发语言·jvm