极光下载站 - 打造齐全的绿色软件家园

极光下载站

当前位置:极光下载站 > 教育教学 > 编程工具 > Apache Tomcat v10.1.2 官方版
Apache Tomcat

Apache Tomcat

v10.1.2 官方版
  • 介绍说明
  • 下载地址
  • 精品推荐
  • 相关软件
  • 网友评论
  Apache Tomcat10是一款免费的服务器软件,可以帮助用户更好调试JSP,可以帮助用户搭建web应用程序,适合喜欢使用JAVA开发的朋友使用,通过这款软件就可以快速部署一个简单的服务器,从而让自己可以调用服务器调试各种Java项目,可以在服务器配置应用程序,可以管理自己的主机,可以web安全行为配置,可以验证web程序,可以在JSP编译器处理项目,结合软件提供的附件、中间件就可以完成各种项目设计,无论是JSP还是Servlet都可以在软件上正常使用,需要的朋友就下载吧!
Apache Tomcat

软件功能

  1、WebSocket 支持- 为 Apache Tomcat 开发 WebSocket 应用程序。

  2、URL 重写- 使用基于正则表达式的重写阀进行条件 URL 和主机重写。

  3、CDI 和 JAX-RS 支持- 配置 CDI、JAX-RS 和 eclipse Microprofile 支持。

  4、Deployer - 操作 Apache Tomcat Deployer 来部署、预编译和验证 Web 应用程序。

  5、Manager - 运行Manager Web 应用程序以在 Apache Tomcat 运行时部署、取消部署和重新部署应用程序。

  6、主机管理器-在 Apache Tomcat 运行时运行主机管理器Web 应用程序以添加和删除虚拟主机。

  7、领域和访问控制 - 描述如何配置领域(用户、密码及其相关角色的数据库)以用于使用容器管理安全性的 Web 应用程序。

  8、安全管理器 - 配置和使用 Java 安全管理器来支持对 Web 应用程序行为的细粒度控制。

  9、JNDI 资源 - 在提供给每个 Web 应用程序的 JNDI 命名上下文中配置标准和自定义资源。

  10、JDBC 数据源 - 使用数据库连接池配置 JNDI 数据源。许多流行数据库的示例。

  11、类加载 - 关于 Apache Tomcat 中类加载的信息,包括将您的应用程序类放置在何处以便它们可见。

  12、JSPs - 关于 Jasper 配置的信息,以及 JSP 编译器的使用。

  13、SSL/TLS - 安装和配置 SSL/TLS 支持,以便您的 Apache Tomcat 将使用该https协议处理请求。

  14、SSI - 在 Apache Tomcat 中使用服务器端包含。

  15、CGI - 在 Apache Tomcat 中使用 CGI。

  16、代理支持- 配置 Apache Tomcat 以在代理服务器(或充当代理服务器的 Web 服务器)后面运行。

  17、MBean 描述符- 为自定义组件配置 MBean 描述符文件。

  18、默认 Servlet - 配置默认 servlet 和自定义目录列表。

  19、Apache Tomcat 集群- 在 Apache Tomcat 环境中启用会话复制。

  20、Balancer - 配置、使用和扩展负载均衡器应用程序。

  21、连接器- Apache Tomcat 中可用的连接器,以及本机 Web 服务器集成。

  22、监控和管理- 启用 JMX 远程支持,并使用工具监控和管理 Apache Tomcat。

  23、日志记录- 在 Apache Tomcat 中配置日志记录。

  24、Apache Portable Runtime - 使用 APR 提供对 OpenSSL 的访问以获得 TLS 支持。

  25、附加组件- 获取附加的可选组件。

  26、Using Tomcat libraries with Maven - 通过 Maven 获取 Tomcat jar。

软件特色

  SSI(服务器端包含)是放置在 HTML 页面中的指令,并在提供页面时在服务器上进行评估。它们允许您将动态生成的内容添加到现有的 HTML 页面,而无需通过 CGI 程序或其他动态技术来提供整个页面。

  当使用 Tomcat 作为 HTTP 服务器并且您需要 SSI 支持时,可以在 Tomcat 中添加 SSI 支持。通常,当您不想运行 Apache 之类的 Web 服务器时,这是在开发期间完成的。

  Tomcat SSI 支持实现与 Apache 相同的 SSI 指令。

  SSI 支持可作为 servlet 和过滤器使用。您应该使用其中之一来提供 SSI 支持,但不能同时使用两者。

  基于 Servlet 的 SSI 支持是使用类实现的 org.apache.catalina.ssi.SSIServlet。传统上,此 servlet 映射到 URL 模式“*.shtml”。

  基于过滤器的 SSI 支持是使用类实现的 org.apache.catalina.ssi.SSIFilter。传统上,此过滤器映射到 URL 模式“*.shtml”,但它可以映射到“*”,因为它将根据 mime 类型有选择地启用/禁用 SSI 处理。contentType init 参数允许您将 SSI 处理应用于 JSP 页面、JavaScript 或您希望的任何其他内容。

  默认情况下,Tomcat 中禁用 SSI 支持。

官方教程

  Tomcat 设置

  介绍

  有几种方法可以设置 Tomcat 以在不同平台上运行。这方面的主要文档是一个名为 RUNNING.txt的文件。如果以下信息不能回答您的某些问题,我们鼓励您参考该文件。

  视窗

  使用 Windows 安装程序可以轻松地在 Windows 上安装 Tomcat。它的界面和功能与其他基于向导的安装程序类似,只有少数感兴趣的项目。

  作为服务安装:无论选择什么设置,Tomcat 都将作为 Windows 服务安装。使用组件页面上的复选框将服务设置为“自动”启动,以便 Tomcat 在 Windows 启动时自动启动。为了获得最佳安全性,该服务应作为单独的用户运行,并减少权限(请参阅 Windows 服务管理工具及其文档)。

  Java 位置:安装程序将提供默认 JRE 以用于运行该服务。安装程序使用注册表来确定 Java 11 或更高版本 JRE 的基本路径,包括作为完整 jdk 的一部分安装的 JRE。在 64 位操作系统上运行时,安装程序将首先查找 64 位 JRE,如果未找到 64 位 JRE,则仅查找 32 位 JRE。如果在 64 位操作系统上运行时找不到 JRE,安装程序将查找 64 位 JDK。最后,如果没有找到 JRE 或 JDK,安装程序将尝试使用 JAVA_HOME环境变量。不强制使用安装程序检测到的默认 JRE。可以使用任何已安装的 Java 11 或更高版本的 JRE(32 位或 64 位)。

  托盘图标:当 Tomcat 作为服务运行时,Tomcat 运行时不会出现任何托盘图标。请注意,在安装结束时选择运行 Tomcat 时,即使 Tomcat 作为服务安装,也会使用托盘图标。

  默认值:安装程序使用的默认值可以通过使用/C=命令行参数来覆盖。name=value配置文件使用每对单独一行的格式 。可用配置选项的名称是:

  Java主页

  Tomcat端口关闭

  Tomcat端口Http

  TomcatMenuEntriesEnable

  TomcatShortcut所有用户

  Tomcat服务默认名称

  Tomcat服务名称

  Tomcat服务文件名

  TomcatServiceManager文件名

  TomcatAdminEnable

  TomcatAdmin用户名

  TomcatAdmin密码

  TomcatAdmin角色

  通过与和 /C=...一起使用,可以执行 Apache Tomcat 的完全配置的无人值守安装。 /S/D=

  有关如何 将 Tomcat 作为 Windows 服务进行管理的信息, 请参阅 Windows 服务指南。

  安装程序将创建允许启动和配置 Tomcat 的快捷方式。请务必注意,Tomcat 管理 Web 应用程序只能在 Tomcat 运行时使用。

  Unix守护进程

  Tomcat 可以使用 commons-daemon 项目中的 jsvc 工具作为守护进程运行。jsvc 的源代码压缩包包含在 Tomcat 二进制文件中,需要编译。构建 jsvc 需要 C ANSI 编译器(例如 GCC)、GNU Autoconf 和 JDK。

  在运行脚本之前,JAVA_HOME应将环境变量设置为 JDK 的基本路径。或者,在调用./configure脚本时,可以使用--with-java参数指定 JDK 的路径,例如 ./configure --with-java=/usr/java.

  使用以下命令应该会生成一个已编译的 jsvc 二进制文件,位于该$CATALINA_HOME/bin文件夹中。这假设使用了 GNU TAR,这CATALINA_HOME是一个指向 Tomcat 安装基本路径的环境变量。

  请注意,您应该在 FreeBSD 系统上使用 GNU make (gmake) 而不是本地 BSD make。

Apache Tomcat

  然后可以使用以下命令将 Tomcat 作为守护进程运行。

  您可能还需要指定-jvm serverJVM 是否默认使用服务器 VM 而不是客户端 VM。这已在 OSX 上观察到。

  jsvc 还有其他有用的参数,比如-user在守护进程初始化完成后会导致它切换到另一个用户。例如,这允许以非特权用户身份运行 Tomcat,同时仍然能够使用特权端口。请注意,如果您使用此选项并以 root 身份启动 Tomcat,则需要禁用 org.apache.catalina.security.SecurityListener阻止 Tomcat 在以 root 身份运行时启动的检查。

  jsvc --help将返回完整的 jsvc 使用信息。特别是,该-debug选项对于调试运行 jsvc 的问题很有用。

  该文件$CATALINA_HOME/bin/daemon.sh可用作在引导时 /etc/init.d使用 jsvc 自动启动 Tomcat 的模板。

  请注意,Commons-Daemon JAR 文件必须位于您的运行时类路径中才能以这种方式运行 Tomcat。Commons-Daemon JAR 文件位于 bootstrap.jar 清单的 Class-Path 条目中,但是如果您收到 Commons-Daemon 类的 ClassNotFoundException 或 NoClassDefFoundError,请在启动 jsvc 时将 Commons-Daemon JAR 添加到 -cp 参数.

  对于急躁的人

  只需添加

  到或元素以启用群集。

  使用上述配置将启用使用DeltaManager复制会话增量的所有到所有会话复制。我们所说的所有对所有,意味着每个会话都会复制到集群中的所有其他节点。这对较小的集群非常有用,但我们不建议对较大的集群使用它-超过4个节点左右。此外,当使用DeltaManager时,Tomcat会将会话复制到所有节点,甚至是没有部署应用程序的节点。

  要解决这些问题,您需要使用BackupManager。BackupManager只将会话数据复制到一个备份节点,并且只复制到部署了应用程序的节点。一旦使用DeltaManager运行了一个简单的集群,当您增加集群中的节点数量时,您可能需要迁移到BackupManager。

  以下是一些重要的默认值:

  1、多播地址为228.0.0.4

  2、多播端口为45564(端口和地址一起决定集群成员身份。

  3、广播的IP是java.net.InetAddress.getLocalHost()。getHostAddress()(确保不广播127.0.0.1,这是一个常见错误)

  4、侦听复制消息的TCP端口是4000-4100范围内第一个可用的服务器套接字

  5、侦听器已配置ClusterSessionListener

  6、两个拦截器配置为TcpFailureDetector和MessageDispatchInterceptor

  以下是默认群集配置:

Apache Tomcat

  集群基础

  要在 Tomcat 10 容器中运行会话复制,应完成以下步骤:

  您的所有会话属性都必须实现java.io.Serializable

  取消注释Clusterserver.xml 中的元素

  如果您已经定义了自定义集群阀,请确保您ReplicationValve 在 server.xml 中的集群元素下也有定义

  如果您的 Tomcat 实例在同一台机器上运行,请确保Receiver.port 每个实例的属性都是唯一的,在大多数情况下,Tomcat 足够聪明,可以通过自动检测 4000-4100 范围内的可用端口自行解决此问题

  确保你web.xml有 元素

  如果您使用的是 mod_jk,请确保在您的引擎中设置 了 jvmRoute 属性,并且 jvmRoute 属性值与您在 workers.properties 中的工作人员名称相匹配

  确保所有节点具有相同的时间并与 NTP 服务同步!

  确保您的负载均衡器配置为粘性会话模式。

  概述

  要在 Tomcat 中启用会话复制,可以遵循三个不同的路径来实现完全相同的事情:

  1.使用会话持久化,并将会话保存到共享文件系统(PersistenceManager + FileStore)

  2.使用会话持久化,并将会话保存到共享数据库(PersistenceManager + JDBCStore)

  3.使用内存复制,使用 Tomcat 附带的 SimpleTcpCluster (lib/catalina-tribes.jar + lib/catalina-ha.jar)

  Tomcat 可以使用 执行会话状态的所有到所有复制,DeltaManager或者使用BackupManager. all-to-all 复制是一种仅在集群较小时才有效的算法。对于较大的集群,您应该使用 BackupManager 来使用主从会话复制策略,其中会话将仅存储在一个备份节点上。

  目前,您可以使用域工作者属性 (mod_jk > 1.2.8) 构建集群分区,并有可能通过 DeltaManager 获得更具可扩展性的集群解决方案(您需要为此配置域拦截器)。为了在 all-to-all 环境中降低网络流量,您可以将集群拆分为更小的组。这可以通过为不同的组使用不同的多播地址来轻松实现。一个非常简单的设置如下所示:

Apache Tomcat

  这里要提到的重要一点是,会话复制只是集群的开始。另一个用于实现集群的流行概念是 farming,即您只将应用程序部署到一台服务器,集群将在整个集群中分发部署。这是 FarmWarDeployer 可以使用的所有功能(s. cluster example at server.xml)

  在下一节中,将更深入地介绍会话复制的工作原理和配置方法。

  崩溃后将会话绑定到故障转移节点

  如果您正在使用 mod_jk 而未使用粘性会话或由于某些原因粘性会话不起作用,或者您只是进行故障转移,则需要修改会话 ID,因为它之前包含前一个 tomcat 的工作者 ID(定义为通过 Engine 元素中的 jvmRoute)。为了解决这个问题,我们将使用 JvmRouteBinderValve。

  JvmRouteBinderValve 重写会话 ID 以确保下一个请求在故障转移后保持粘性(并且不会回退到随机节点,因为工作人员不再可用)。Valve 用相同的名称重写 cookie 中的 JSESSIONID 值。如果没有这个阀门,在 mod_jk 模块出现故障时将更难确保粘性。

  请记住,如果您要在 server.xml 中添加自己的阀门,那么默认值将不再有效,请确保您添加了默认定义的所有适当阀门。

  提示:

  使用属性sessionIdAttribute,您可以更改包含旧会话 ID 的请求属性名称。默认属性名称是org.apache.catalina.ha.session.JvmRouteoriginalSessionID。

  技巧:

  您可以在将节点删除到所有备份节点之前通过 JMX 启用此 mod_jk 周转模式!在所有 JvmRouteBinderValve 备份上设置启用 true,在 mod_jk 禁用 worker,然后删除节点并重新启动它!然后再次启用 mod_jk Worker 并禁用 JvmRouteBinderValves。此用例意味着仅迁移请求的会话。

  配置示例

Apache Tomcat

  集群架构

  组件级别:

Apache Tomcat

常见问题

  如何调整内存设置?

  首先查看java-X以确定要设置的参数。然后可以通过环境变量CATALINA_OPTS设置它们(使用JAVA_OPTS也可以,但不建议使用)。此变量通常设置在bin/setenv文件中。sh或bin/setenv。蝙蝠,你可能需要自己创造。

  setenv文件记录在RUNNING中。txt文件。环境变量在catalina顶部的注释中描述。蝙蝠或卡塔琳娜。sh文件。

  为什么会出现OutOfMemoryError错误?

  原因很多。

  你的内存不足。就这么简单-向堆中添加更多内容。

  你没有内存了。您有挂在对象引用上的代码,垃圾收集器无法完成其工作。获取一个探查器来调试这个。

  文件描述符已用完。如果您使用的是*nix系统,据观察,如果文件描述符用完,可能会引发OutOfMemoryError。如果您的阈值过低,可能会发生这种情况。ulimit程序可以帮助你。在考虑这些阈值时,您可能还需要考虑套接字连接。谷歌是您获取有关此主题的更多信息的朋友。

  运行的线程太多。某些操作系统对单个进程可以执行的线程数有限制。(这就是JVM。)

  如果您有很多servlet或JSP,您可能需要增加永久生成。默认情况下,它是64MB。将其加倍为-XX:MaxPermSize=256m可能是一个好的开始。

  操作系统限制了进程可能占用的内存量。好吧,这只正在抓吸管。

  JVM有一个错误。已知JVM1.2会发生这种情况。?并将EJB与另一个servlet引擎一起使用。

  这实际上不是一个原因,但在您的特定平台上,看看java-X选项。它们可能非常有用。

  你的类加载器没有被垃圾收集。

  例如,当使用java.util时,进程内存(非java/GC内存)用完。zip类或分配进程内存的JNI类。请参阅实例化充气器/放气器导致OutOfMemoryError;终结器调用不够及时

  Tomcat/webapp/??有多少内存???使用?

  要了解Tomcat使用了多少内存,您可以使用JDK提供的Runtime类。

  你无法知道一个网络应用程序使用了多少内存。JVM没有提供这些细节。

  你找不到有多少内存???正在使用。JVM没有提供这些细节。

  尽管如此,内存分析工具可能会证明上述语句是错误的,但您可能不想在生产环境中使用它们。

更新日志

  Apache Tomcat 项目自豪地宣布发布 Apache Tomcat 10.1.2 版。此版本实现了作为 Jakarta EE 10 平台一部分的规范。

  此版本中的显着变化是:

  修复包含 lambda 表达式的表达式语言评估中的并发问题。

  将 Apache Tomcat Native Library 的打包版本更新到 2.0.2,以获取使用 OpenSSL 3.0.7 构建的 Windows 二进制文件。

  更正与 HTTP cookie 的过期属性一起使用的日期格式。应使用单个空格而不是单个破折号来分隔日、月和年组件,以符合 RFC 6265。

主要修复

  Tomcat 10.1.2(标记)

  Catalina

  添加:66029:添加一个配置选项,以允许用于索引JAR文件的布隆过滤器在web应用程序的生命周期内保留。在此添加之前,索引总是由对WebResourceRoot.gc()的定期调用刷新。作为此添加的一部分,归档索引的配置将从Context移动到WebResourceRoot。基于Rahul Jaisimha提供的补丁。(马克)

  修复:66330:更正修复62897时引入的回归,这意味着忽略了为上下文上的skipMemoryLeakChecksOnJvmShutdown配置的任何值,并且始终使用默认值。(马克)

  修复:66331:修复SystemLogHandler上Stack重构中的回归,该回归捕获了错误的异常。(李汉)

  修复:66338:修复导致ErrorReportValve重构中出现细微差别的回归。(李汉)

  修复:转义值用于构造JsonErrorReportValve的输出,以确保它始终输出有效的JSON。(马克)

  Coyote

  修复:更正与HTTP cookie的过期属性一起使用的日期格式。应使用一个空格而不是一个破折号来分隔日、月和年组件,以符合RFC 6265。(markt)

  添加:当流处于不允许写入的状态时,由于尝试写入流而被取消时,在错误消息中包含当前流状态的名称。(马克)

  代码:NIO写入永远不会返回-1,因此重构CLOSED_NIO_CHANNEL不这样做,并删除对该返回值的检查。基于天霜的562号。(马克)

  代码:删除将asyncTimeout暴露给从未使用过它的组件的不必要代码。(马克)

  Jasper

  修复:66294:使用特权块获取添加到地址62080的线程上下文类加载器(可选),默认情况下禁用。这现在由org.apache.el.GET_CLASSSLOADER_USE_PRIVILEGED系统属性控制。(马克)

  修复:66317:修复Lambda强制安全管理器缺少权限的问题。基于Isaac Rivera Rivas(lihan)的第557号拉取请求

  修复:66325:修复包含lambda表达式的表达式语言求值中的并发问题。(马克)

  Other

  更新:更新到Commons Daemon 1.3.2.(markt)

  修复:66323:将模块启动参数从JDK_JAVA_OPTIONS移动到JAVA_OPTS,因为JAVA的最低版本是11,这些选项始终是必需的。(马克)

  补充:对中文翻译的改进。DigitalCat和lihan供稿。(马克)

  添加:对法语翻译的改进。Mathieu Bouchard供稿。(马克)

  添加:对日语翻译的改进。白玉京供稿。(马克)

  修复:更正删除APR连接器时的回归,该连接器破坏了Graal原生图像支持。Sébastien Deleuze提供的第564号拉取请求。(马克)

  更新:将Apache Tomcat Native Library的打包版本更新到2.0.2,以获取使用OpenSSL 3.0.7构建的Windows二进制文件。(markt)

  更新:将Apache Tomcat Migration Tool for Jakarta EE的打包版本更新到1.0.5。(markt)

下载地址

  • Pc版

Apache Tomcat v10.1.2 官方版

相关软件

查看所有评论+

网友评论

网友
您的评论需要经过审核才能显示

本类排名

本类推荐

装机必备

换一批

相关资讯