简介对于大多数用例来说,默认配置下的 Tomcat 都是相当安全的。有些环境可能需要更多(或更少)的安全配置。本文统一介绍了一下可能影响安全性的配置选项,并适当说明了一下修改这些选项所带来的预期影响。目的是为了在评价 Tomcat 安装时,提供一些应值得考虑的配置选项。注意:本章内容毕竟有所局限,你还需要对配置文档进行深入研究。在相关文档中有更完整的属性描述。
Tomcat 快照Tomcat 快照位于 Apache Snapshot Repository。官方 URL 为: http://people.apache.org/repo/m2-snapshot-repository/org/apache/tomcat/ 隔段时间就会发布一个版本的快照,没有固定的周期。Tomcat 团队将保证快照改动的有效性。 Tomcat 版本Tomcat 的稳定版本(Stable release)会发布到 Central Maven Repositories。其 URL 为: http://repo2.maven.
简介Tomcat 可以使用许多附件组件。这些附加组件有可能是由用户在需要时创建的,或者是从镜像下载站下载而来的。 下载打开 Tomcat 下载页面,在“快速导航链接”(Quick Navigation Links)中点击“浏览”(browse)链接。在随后打开页面的 bin/extras 中可以找到附加组件。 构建附加组件使用 Tomcat 标准的 Ant 脚本的 extras 目标构建而成。
简介由于基于 APR 或 NIO API 来构建连接器,Tomcat 能在通常的阻塞 IO 之上提供一些扩展,从而支持 Servlet API。 重要说明:这些特性需要使用 APR 或 NIO HTTP 连接器。经典的 java.io HTTP 连接器 与 AJP 连接器并不支持它们。 Comet 支持Comet 支持能让 Servlet 实现:对 IO 的异步处理;当连接可以读取数据时,接收事件(而不是总使用阻塞读取);
简介Tomcat 可以使用 Apache Portable Runtime(APR) 来增强可扩展性与性能,并能更好地与原生服务器技术相集成。APR 是一种具有高度可移植性的类库,是 Apache HTTP Server 2.x 的核心。APR 具有许多用途,包括访问高级 IO 功能(比如 sendfile、epoll 和 OpenSSL)、系统级功能(随机数生成、系统状态,等等)以及原生进程处理(共享内存、NT 管道、UNIX 套接字)。
简介Tomcat 的内部日志使用 JULI 组件,这是一个 Apache Commons 日志的重命名的打包分支,默认被硬编码,使用 java.util.logging 架构。这能保证 Tomcat 内部日志与 Web 应用的日志保持独立,即使 Web 应用使用的是 Apache Commons Logging。
简介监控是系统管理中的重要环节。系统管理员的日常工作就包括:观察服务器的运行细节,获取统计数据,或者重新配置应用的某些内容。 启用 JMX 远程监控注意:该配置只适用于需用远程监控 Tomcat 的情况,使用同样的用户在本地监控 Tomcat 则不需要这么配置。 Oracle 的网站上介绍了如何在 Java 6 上配置 JMX 远程:http://docs.oracle.
使用 JK 1.2.x 原生连接器请参考 JK 1.2.x 文档。使用 Apache HTTP Server 2.x请参阅 Apache HTTP Server 2.2 的 mod_proxy 文档。它能支持 HTTP 或 AJP 负载均衡。新版的 mod_proxy 也能适用于 Apache HTTP Server 2.0 ,但必须使用 Apache HTTP Server 2.2 的代码独立编译。
重要说明相关内容详情可以查看集群配置文档快速入门只需将下列信息放入 <Engine> 或 <Host> 元素即可实现集群: <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>上述配置启用了全局(all-to-all)会话复制功能,全局会话复制是指利用 DeltaManager 来只复制会话中的变更(Session Delta,也译作“会话增量”)。
什么是 DefaultSeveletDefaultSevelet 是处理静态资源的 Sevelet。在什么位置声明它?它在 $CATALINA_HOME/conf/web.xml 中被全局声明。默认形式的声明是这样的: $CATALINA_HOME/conf/web.xml <servlet> <servlet-name>default</servlet-name> <servlet-class> org.apache.catalina.servlets.
简介Tomcat 使用 JMX MBean 来实现自身的性能管理。 每个包里的 mbeans-descriptor.xml 是针对 Catalina 的 JMX MBean 描述。 为了避免出现 “ManagedBean is not found” 异常,你需要为自定义组件添加 MBean 描述。添加 Mbean 描述在 mbeans-descriptor.xml 文件中,你可以为自定义组件添加 Mbean 描述。这个 xml 文件跟它所描述的类文件同在一个包内。 <
简介使用 Tomcat 的标准配置,Web 应用可以请求服务器名称和端口号》。当 Tomcat 单独和 HTTP/1.1 连接器运行时,通常会报告指定在请求中的服务器名称,以及连接器正在侦听的端口号。servlet API:ServletRequest.getServerName() 返回接收请求的服务器主机名。 ServletRequest.getServerPort() 返回接收请求的服务器端口号。 ServletRequest.
简介SSI(服务器端嵌入)是一组放在 HTML 页面中的指令,当服务器向客户端访问提供这些页面时,会解释执行这些指令。它们能为已有的 HTML 页面添加动态生成内容,不需要通过 CGI 程序来或其他的动态技术来重新改变整个页面。 如果利用 Tomcat 作为 HTTP 服务器并需要 SSI 支持时,可以添加 SSI 支持。
Quick Start下列说明将使用变量名 $CATALINA_BASE 来表示多数相对路径所基于的基本目录。如果没有为 Tomcat 多个实例设置 CATALINA_BASE 目录,则 $CATALINA_BASE 就会设定为 $CATALINA_HOME 的值,也就是你安装 Tomcat 的目录。 在 Tomcat 中安装并配置 SSL/TLS 支持,只需遵循下列几步即可。详细信息可参看文档后续介绍。
概述与很多服务器应用一样,Tomcat 也安装了各种类加载器(那就是实现了 java.lang.ClassLoader 的类)。借助类加载器,容器的不同部分以及运行在容器上的 Web 应用就可以访问不同的仓库(保存着可使用的类和资源)。这个机制实现了 Servlet 规范 2.4 版(尤其是 9.4 节和 9.6 节)里所定义的功能。 在 Java 环境中,类加载器的布局结构是一种父子树的形式。
概述JNDI 数据源配置的相关内容已经在 JNDI 资源文档中详细介绍过。但从 Tomcat 用户的反馈意见来看,有些配置的细节问题非常棘手。 针对常用的数据库,我们已经给 Tomcat 用户提供了一些配置范例,以及关于数据库使用的一些通用技巧。本章就将展示这些范例和技巧。 另外,虽然有些注意事项来自于用户所提供的配置和反馈信息,但你可能也有不同的实践。
本章概述Tomcat 为每个在其上运行的 Web 应用都提供了一个 JNDI 的 InitialContext 实现实例,它与Java 企业版应用服务器所提供的对应类完全兼容。Java EE 标准在 /WEB-INF/web.xml 文件中提供了一系列标准元素,用来引用或定义资源。
背景知识Java 的 SecurityManager 能让 Web 浏览器在它自身的沙盒中运行小型应用(applet),从而具有防止不可信代码访问本地文件系统的文件以及防止其连接到主机,而不是加载该应用的位置,等等。
快速入门本文档介绍了如何借助一个“数据库”来配置 Tomcat ,从而实现容器管理安全性。所要连接的这种数据库含有用户名、密码以及用户角色。你只需知道的是,如果使用的 Web 应用含有一个或多个 <security-constraint> 元素,<login-config> 元素定义了用户验证的必需细节信息。如果你不打算使用这些功能,则可以忽略这篇文档。
本章概述部署这个术语描述的就是,将 Web 应用(第三方的 WAR 文件,或是你自己定制的 Web 应用)安装到 Tomcat 服务器上的整个过程。 在 Tomcat 服务器上,可以通过多种方法部署 Web 应用: 静态部署。在启动 Tomcat 之前安装 Web 应用。 动态部署。使用 Tomcat 的 Manager 应用直接操控已经部署好的 Web 应用(依赖 auto-deployment 特性)。
关注时代Java