Tomcat高效稳定Java Servlet容器



 

第一章 Tomcat简介

Tomcat是Apache软件基金会旗下的Jakarta项目中的核心项目, 它由Apache、Sun以及其他公司和个人共同开发. 得益于Sun的参与和支持, Tomcat始终能及时地体现最新的Servlet和JSP规范. Tomcat以其先进的技术、稳定的性能以及完全免费的特点, 深受Java爱好者的喜爱, 并得到部分软件开发商的认可. 作为一款流行的Web应用服务器, Tomcat在市场上广受欢迎.

Tomcat的下载地址为: https://tomcat.apache.org/download-10.cgi

由于Tomcat是由java语言开发的, 所以想要正常运行Tomcat服务就需要在操作系统上安装 java开发环境(JDK).

JDK下载地址: https://www.oracle.com/java/technologies/downloads/#java11

tomcat_arch

 

1.1 在CentOS 7 中部署TomCat

Tomcat 是由java语言编写的, 安装tomcat时必须要使用到java的环境, 所以部署java的环境是必须的; 对于tomcat的部署这里也采用的是源码的方式进行安装, 方便在将来控制版本的更迭

 

1.2 tomcat配置文件识别

Tomcat是一个开源的Java Servlet容器, 用于运行Java Servlet和JavaServer Pages(JSP)应用程序. 安装目录中的各个文件和目录扮演着不同的角色和功能. 以下是Tomcat安装目录中常见的一些重要文件和目录及其作用:

  1. bin/: 该目录包含了Tomcat的可执行文件, 用于启动和停止Tomcat服务器. 主要包含以下重要文件:

    • startup.sh : 用于启动Tomcat服务器

    • shutdown.sh : 用于停止Tomcat服务器

    • catalina.sh : 启动脚本的主要文件, 负责执行Tomcat的启动和配置

  2. conf/: 该目录包含Tomcat服务器的配置文件. 重要文件包括:

    • server.xml: Tomcat服务器的主要配置文件, 包括定义连接器、虚拟主机等(运维配置)

    • web.xml: 用于配置Web应用程序的Servlet、过滤器和监听器等(研发提供)

    • context.xml: 配置Web应用程序上下文的配置文件, 可以包含数据库连接、资源等信息(研发提供)

    • catalina.policycatalina.properties: Tomcat的安全策略和系统属性配置文件(安全运维提供)

  3. lib/: 该目录包含Tomcat服务器运行时所需的Java类库文件(JAR文件)

  4. logs/: 该目录包含Tomcat服务器的日志文件, 如访问日志和错误日志

  5. webapps/: 该目录是Web应用程序部署的位置. 将你的Java Web应用程序(WAR文件)放在这里, Tomcat会自动部署并运行它们

  6. work/: 该目录用于存储Tomcat运行时编译的JSP文件和其他临时文件

  7. temp/: 该目录用于存储Tomcat服务器运行时的临时文件

     

这些只是Tomcat安装目录中一些重要的文件和目录, 实际安装目录可能会因不同的Tomcat版本和安装选项而有所差异. 了解这些文件和目录的作用可以帮助你更好地配置和管理Tomcat服务器, 下面是tomcat的server.xml配置文件的结构:

截屏2023-08-01 10.34.17

 

1.3 上线项目到tomcat中

⚠️访问浏览器: http://TOMCAT_HOST_IP:8080/starter-tomcat-5.0 即可进入到安装的界面中

 

注意事项:

以上步骤描述了将JavaWeb应用程序部署到Tomcat服务器的基本过程. 具体的步骤可能因你使用的项目构建工具和部署方式而略有不同. 在实际操作时, 你可能还需要处理一些项目特定的配置和依赖项, 以确保应用程序可以正确运行.

 

 

第二章 TomCat多实例(最没有用的东西)

2.1 多实例的意义和作用

Tomcat多实例是指在一台服务器上运行多个独立的Tomcat进程, 每个实例都有自己的配置、日志和应用程序部署目录. 这种配置方式可以实现多个独立的Tomcat服务共享同一台物理服务器资源, 以提高性能、隔离应用程序、灵活部署和更好的资源利用率.

作用和意义:

  1. 隔离应用程序:每个Tomcat实例可以运行不同的应用程序, 避免了应用程序之间的干扰, 提高了应用程序的稳定性和安全性

  2. 提高性能:多个Tomcat实例可以利用多核处理器和多线程来提高并发处理能力, 从而增加整体系统的性能

  3. 灵活部署:每个Tomcat实例都可以单独启动、停止和重启, 方便对应用程序进行独立管理和维护

  4. 资源利用率:多实例可以充分利用服务器资源, 提高服务器的利用效率, 降低成本

 

2.2 配置实践

假设我们在服务器上已经安装了Tomcat, 并且将其安装目录命名为tomcat. 现在我们要创建两个Tomcat实例:tomcat_instance1tomcat_instance2, 并让它们分别监听不同的端口.

  1. 复制Tomcat目录并修改端口:

    • 复制tomcat目录为tomcat_instance1tomcat_instance2.

    • 分别修改tomcat_instance1/conf/server.xmltomcat_instance2/conf/server.xml, 将HTTP端口改为不同的端口号

    • 修改AJP端口和shutdown端口, 确保不同实例的端口不冲突.

  2. 启动多实例:

    • 在命令行中进入tomcat_instance1/bin目录, 执行./startup.sh启动tomcat_instance1.

    • 在命令行中进入tomcat_instance2/bin目录, 执行./startup.sh启动tomcat_instance2.

  3. 部署应用程序:

    • 将应用程序的WAR文件复制到tomcat_instance1/webapps目录, tomcat_instance2/webapps目录

  4. 访问应用程序:

    • 通过http://服务器IP:8081来访问tomcat_instance1中部署的应用程序

    • 通过http://服务器IP:8082来访问tomcat_instance2中部署的应用程序

这样就创建了两个Tomcat多实例, 并且它们可以独立运行和部署不同的应用程序.

 

第三章 TomCat的调优及功能配置

3.1 应用层配置优化

在高负载情况下或者需要优化性能时, 对Tomcat进行调优和功能配置是至关重要的. 下面将详细介绍Tomcat的调优和功能配置:

1. 调整JVM参数:

2. 调整Tomcat连接器:

3. 启用压缩:

4. 静态资源缓存:

5. 启用连接池:

6. 配置虚拟主机和负载均衡:

7. 启用AccessLog:

以上是对Tomcat调优和功能配置的一些常见方法. 调优时应根据实际情况进行测试和评估, 确保所做的改进符合需求和预期效果. 注意备份配置文件, 以防止意外问题.

 

3.2 系统层优化

1. 调整文件描述符限制: 增加每个进程可以打开的文件描述符的数量, 以便Tomcat可以处理更多的并发连接和请求。在Linux系统中, 可以通过修改/etc/security/limits.conf/etc/security/limits.d/*文件, 增加nofile(文件描述符)限制。

 

2. 内核参数优化: 根据服务器配置和工作负载, 可能需要调整一些内核参数, 如TCP连接、内存、网络缓冲区等。这些参数可以通过修改/etc/sysctl.conf文件来设置

 

3. 使用高性能文件系统: 选择适合服务器的高性能文件系统(ext4、xfs), 以提供更快的读写性能。

4. 限制非Tomcat进程资源: 如果服务器上还运行着其他应用程序, 可以限制这些进程的资源使用, 以确保Tomcat能够获得足够的资源。常用的做法是将tomcat的优先级进行调高

5. 定期监控和优化: 定期监控系统性能和资源使用情况, 并根据监控结果进行调整和优化。

请注意, 在进行系统层面的优化时, 一定要小心操作, 确保了解每个配置的含义和影响。优化前最好备份系统配置文件, 以防止出现问题时可以还原。此外, 具体的优化配置可能会因不同的操作系统和服务器配置而有所不同, 建议在进行优化前仔细研究相关文档和资源