一旦在服务器上启动并运行Tomcat,下一步就是配置它的基本设置。您的初始配置过程将由两个任务组成,本文将详细介绍这两个任务。第一个是编辑Tomcat的XML配置文件,第二个是定义适当的环境变量。
XML配置文件
启动和运行Tomcat的两个最重要的配置文件称为server.xml以及web.xml. 默认情况下,这些文件位于TOMCAT-HOME/conf/server.xml
以及TOMCAT-HOME/conf/web.xml
。
SERVER.XML
这个server.xml
文件是Tomcat的主配置文件,负责在启动时指定Tomcat的初始配置,并定义Tomcat引导和构建的方式和顺序。server.xml
文件的元素属于五个基本类别-顶级元素、连接器、容器、嵌套组件和全局设置。这些类别中的所有元素都有许多属性,可以用来微调它们的功能。通常,如果您需要对Tomcat安装进行任何重大更改,例如指定应用程序端口号,server.xml
是要编辑的文件。
您可以在Apache的Tomcat文档页面上找到这些选项的全面文档,但是这里有一些关于一些最重要元素的信息,可以帮助您开始配置!
顶级元素
Server
此元素定义单个Tomcat服务器,并包含Logger和ContextManager配置元素。此外,Server元素支持“port
”、“shutdown
”和“className
”属性。
port
属性用于指定Tomcat应该监听哪个端口来执行关闭命令。shutdown
属性定义要在指定端口上侦听以触发关机的命令字符串。className
属性指定应该使用哪个Java类实现。
Service
此元素可以嵌套在服务器元素中,用于包含共享同一引擎组件的一个或多个连接器组件。该组件的主要功能是将这些组件定义为单个服务。将出现在日志中的服务的名称是使用服务元素的“name
”属性指定的。
Connectors
通过在服务标签中嵌套一个连接器(或多个连接器),您允许Catalina将来自这些端口的请求转发到单个引擎组件进行处理。Tomcat允许您定义HTTP和AJP连接器。
HTTP Connector
此元素表示HTTP/1.1连接器,并为Catalina提供独立的web服务器功能。这意味着除了执行servlet和JSP页面之外,Catalina还能够监听特定TCP端口的请求。您定义的每个连接器都表示Catalina应该侦听HTTP请求的单个TCP端口。配置HTTP连接器时,请密切注意“minSpareThreads
”、“maxThreads
”和“acceptCount
”属性。“maxtreads
”属性特别重要。此属性控制可创建的最大线程数,以处理超过可用线程数的请求。将此值设置得太低将导致请求在服务器套接字内堆叠,一旦套接字已满,它将开始拒绝连接。全面的测试将帮助您避免这个问题。
AJP Connector
此元素表示能够与AJP协议通信的连接器。这个元素的主要作用是帮助Tomcat与Apache的安装集成。您希望使用此功能的最常见原因是,如果您计划使用Apache在Tomcat前面提供静态内容。该技术旨在为动态页面生成和负载平衡腾出更多的能量,因此如果快速性能是您的应用程序的关注点,这是值得考虑的。AJP连接器还可以用于向Tomcat公开Apache的SSL处理功能。
Containers
Catalina使用这些元素将请求直接发送到正确的处理设备。
Context
此元素表示单个web应用程序,并包含用于将请求定向到适当的应用程序资源的路径信息。当Catalina收到请求时,它会尝试将最长的URI与给定上下文的上下文路径相匹配,直到找到为请求提供服务的正确元素为止。Context元素对于utility元素Loader
、Manager
、Realm
、Resources
和WatchedResource
的每个元素最多只能有一个嵌套实例。尽管Tomcat允许您在“Tomcat-HOME/conf/server.xml”中定义上下文,这通常应该避免,因为在不重新启动Tomcat的情况下无法重新加载这些中心配置设置,这使得编辑上下文属性比必要的更具侵入性。
Engine
此元素与嵌套在服务元素中的一个或多个连接器结合使用,并负责处理与其父服务关联的所有请求。引擎元素只能在嵌套在服务元素中时使用,并且给定服务中只允许有一个引擎元素要素。支付请密切注意“defaultHost”属性,它定义了负责为服务器上未在中配置的主机名请求提供服务的Host元素server.xml. 此属性必须与嵌套在相关引擎元素中的主机元素之一的名称匹配。另外,使用“name”属性为每个引擎元素指定一个唯一的逻辑名称也很重要。如果server.xml文件包含多个服务元素,您需要为每个引擎元素分配一个唯一的名称。
Host
这个元素嵌套在Engine元素中,用于将服务器网络名称与Catalina服务器相关联。只有当所讨论的虚拟主机向所讨论域的管理DNS注册时,此元素才能正常工作。
Host元素最有用的特性之一是它能够包含嵌套的Alias元素,这些元素用于定义多个网络名称,这些名称应解析为同一虚拟主机。
Cluster
Cluster元素被Tomcat用来提供上下文属性复制、WAR部署和会话复制,并且可以嵌套在Engine或Host元素中。Manager
、Channel
、Valve
、Deployer
和ClusterListener
元素嵌套在其中。关于这些元素以及如何使用它们的更多信息可以在Apache的Tomcat配置页面上找到。尽管这个元素是高度可配置的,但是默认配置通常足以满足大多数用户的需求。
Nested Components
这些元素嵌套在容器元素中以定义其他功能。
Listeners
这些元素可以嵌套在服务器、引擎、主机或上下文元素中,它们指向在特定事件发生时将执行操作的组件。
虽然大多数组件都具有className
属性,但要选择元素的不同实现,Listener元素是唯一的,因为除了默认实现之外,还有许多唯一的实现,并且从tomcat6.0开始,所有这些实现都要求Listener元素嵌套在Server元素中。因此,正确设置此属性非常重要。当前可用的实现有APR生命周期侦听器、Jasper侦听器、服务器生命周期侦听器、全局资源生命周期侦听器、JMX远程生命周期侦听器和JRE内存泄漏预防侦听器。
Global Naming Resources
此元素用于指定特定服务器的全局Java命名和目录接口(JNDI)资源,不同于任何每个web应用程序JNDI上下文。如果愿意,可以通过定义<resource ref>
和<resource env ref>
并使用<ResourceLink>
链接到它们来声明该元素中的JNDI资源查找特性。此方法的结果相当于在应用程序的/WEB-INF/web.xml文件中包含<resource ref>
元素。如果使用此技术,请确保定义指定和配置对象工厂及其属性所需的任何其他参数。
Realm
这个元素可以嵌套在任何容器元素中,它定义了一个包含该容器的用户名、密码和角色的数据库。如果嵌套在主机或引擎元素中,则默认情况下,在领域元素中定义的特征由所有较低级别的容器继承。由于存在多种实现,因此正确设置此元素的“className
”属性非常重要,以提供不同类型的容器管理安全性。这些实现用于将Catalina公开给其他用户安全管理系统,如JDBC
、JNDI
和DataSource
。
Resources
这个元素有一个简单的任务-将Catalina定向到web应用程序使用的静态资源。这些资源包括类、HTML和JSP文件。利用这个元素,Catalina可以访问文件系统以外的地方包含的文件,比如WAR档案或JDBC数据库中包含的资源。必须记住,这种允许web应用程序访问文件系统外包含的资源的技术只有在所讨论的应用程序不需要直接访问文件系统上存储的资源时才能使用。
Valve
Valve组件嵌套在引擎、主机和上下文元素中,以将特定功能插入到请求处理管道中。这是一个非常通用的元素。阀元件的类型从验证器到过滤器,再到WebDAV
错误的修复。其中许多类型的阀只能嵌套在特定的元素中。不用说,关注这个元素的“className
”属性是必不可少的。Apache的Tomcat配置页面上提供了大量关于Valve元件类型及其用途的文档。
Web.XML
这个Web.xml文件派生自Servlet规范,包含用于部署和配置web应用程序组件的信息。在第一次配置Tomcat时,您可以在这里为中心组件(如JSP)定义servlet映射。在Tomcat中,该文件的功能与Servlet规范中描述的相同。Tomcat处理这个文件的唯一不同之处在于,用户可以选择使用Tomcat-HOME/conf/Web.xml
为所有上下文定义默认值。如果使用此方法,Tomcat将使用Tomcat-HOME/conf/Web.xml
作为一个基本配置,它可以被特定于应用程序的WEB-INF覆盖/Web.xml文件夹。
其他重要配置文件
当您第一次启动并运行Tomcat时,其他一些配置文件将非常重要。Tomcat的UserDatabaseRealm将用于身份验证的角色、用户和密码的默认列表可以在Tomcat中找到 tomcat-users.xml
. 如果您想访问随Tomcat打包的任何管理工具,可以编辑此文件以添加admin和manager访问权限。应用于Tomcat安装的所有部署上下文的默认上下文设置可以在context.xml文件。这个catalina.policy文件,替换java.policy策略用您选择的JDK打包的文件,包含Tomcat元素的权限设置。您可以手工编辑此文件,也可以使用policytool编辑此文件,policytool是一个使用任何Java发行版1.2或更高版本打包的应用程序。
最后,在第一次配置Tomcat时,应该修改几个环境变量以满足您的需要。
JAVA_OPTS
使用这个变量,可以定义JVM的堆大小。当部署一个可能需要更多或更少堆大小才能正常工作的新应用程序时,为这个变量设置一个适当的值是至关重要的。为这些设置找到合适的值可以帮助消除或减少OOME消息。
CATALINA_HOME
此变量指定Tomcat安装的位置。Tomcat的启动脚本将尝试猜测这个变量的值,但最好自己将它设置为正确的值,以避免出现任何问题。
CATALINA_OPTS
此变量用于设置各种特定于Tomcat的选项。此变量可用于设置环境变量,这些变量仅覆盖Tomcat的JAVA_OPTS
设置,这在单个JVM上运行多个JAVA应用程序时非常有用。
除特别注明外,本站所有文章均为老K的Java博客原创,转载请注明出处来自https://javakk.com/1504.html
暂无评论