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    
相关推荐
月落归舟8 分钟前
深入剖析乐观锁背后的原理
java·乐观锁
SimonKing22 分钟前
OpenCode 在 IDEA 中使用 ACP 协议 VS 直接使用 TUI,哪个编程方式更是你的菜?
java·后端·程序员
NE_STOP29 分钟前
Redis--持久化之AOF
java
budingxiaomoli31 分钟前
注册中心的其他实现-Nacos
java·spring cloud·微服务
大大大大晴天️42 分钟前
Flink技术实践-Flink重启策略选型指南
java·大数据·flink
ffqws_1 小时前
Spring @Transactional 注解详解:从入门到避坑
java·数据库·后端·spring
xuhaoyu_cpp_java1 小时前
单调栈(算法)
java·数据结构·经验分享·笔记·学习·算法
黑夜里的小夜莺1 小时前
黑马点评登录成功后点击【我的】会跳转到登录页面 BUG 修复
java·bug
wuyikeer1 小时前
Java进阶——IO 流
java·开发语言·python
fengxin_rou2 小时前
JVM 内存结构与内存溢出 / 泄漏问题全解析
java·开发语言·jvm·分布式·rabbitmq