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    
相关推荐
liangsheng_g25 分钟前
SpringAOP拦截器链递归与事务钩子补偿源码实战
java·spring
SL_staff30 分钟前
制造业私有化文档平台的技术实践:从知识孤岛到可追溯知识资产
java·spring·开源
SL_staff2 小时前
3天上线OKR系统:一名HR与1名工程师如何用JVS完成全栈交付
java·低代码·开源
wzdark3 小时前
基于链表的内存池设计与内存复用机制4
java·数据结构·链表
cnkeysky3 小时前
idea 中的 maven 项目重新加载子模块
java·idea
Escalating_xu4 小时前
【System V 信号量】从 P/V 原语到 Builder 封装:写出可控、可清理的进程互斥组件
java·linux·开发语言·jvm
今天AI了吗4 小时前
什么是 AI Agent?它与直接调用大模型 API 有何区别
java·网络·人工智能·架构·java-ee
隐退山林4 小时前
JavaEE进阶:SpringAOP
java·java-ee
Wang's Blog4 小时前
Java框架快速入门: Spring Security+OAuth2之方法级安全注解
java·安全·spring
JavacKaka4 小时前
LiteFlow规则引擎实战博客-2026-09-09
java