这里对tomcat7的server.xml文件进行解释一下,方便在分析启动源码的时候理解Digester做的事情。
<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<Listener className="org.apache.catalina.security.SecurityListener" />
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JasperListener" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="150" minSpareThreads="4"/>
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
Server
tomcat中Server代表一个tomcat实例,所以只会存在一个Server,而在配置文件中也是作为顶级元素出现,代码如下:
<Server port="8005" shutdown="SHUTDOWN"> 。。。 </Server>
Listener
监听器,用来监听某些事件的发生。
复制代码 代码如下:
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
VersionLoggerListener,启动时对tomcat,java,操作系统信息打印日志。
复制代码 代码如下:
<Listener className="org.apache.catalina.security.SecurityListener" />
SecurityListener,启动tomcat时,做一些安全检查。
复制代码 代码如下:
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
AprLifecycleListener,用来监听Apache服务器相关的。
复制代码 代码如下:
<Listener className="org.apache.catalina.core.JasperListener" />
JasperListener,Jasper 2 JSP 引擎,主要负责对更新之后的jsp进行重新编译。
复制代码 代码如下:
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
JreMemoryLeakPreventionListener,防止内存溢出的监听器。
复制代码 代码如下:
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
GlobalResourcesLifecycleListener,初始化定义在元素GlobalNamingResources下的全局JNDI资源
复制代码 代码如下:
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
ThreadLocalLeakPreventionListener,防止ThreadLocal溢出监听器。
GlobalNamingResources
GlobalNamingResources定义Server的全局JNDI资源。可以为所有的引擎应用程序引用。
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
配置文件中定义了一个JNDI,名为UserDatabase,通过conf/tomcat-users.xml的内容,来得到一个用于授权用户的数据库,是一个内存数据库。
Service
<Service name="Catalina"> 。。。 </Service>
Server下面可以有多个Service,Service下面有多个Connector和一个Engine。这里默认的Service名字为Catalina,下面有两个Connector:Http和AJP。
Connector
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
上面是用来处理http请求的Connector。
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
上面是使用线程池,处理http请求。
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
上面处理ssl请求,端口是8443。
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
上面处理AJP请求,可以将tomcat和apache的http服务器一起运行。
Engine
Engine是容器,一个Service中只包含一个Engine:
<Engine name="Catalina" defaultHost="localhost"> ... </Engine>
Engine下面可以包含一个多或者多个Host。Engine从http请求的头信息中的主机名或者ip映射到真确的主机上。
Cluster
集群相关的配置。tomcat支持服务器集群,可以复制整个集群的回话和上下文属性,也可以部署一个war包到所有的集群上。
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
Realm
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
Realm是一个包含user、password、role的数据库,Realm可以定义在任何容器中。这里通过外部资源UserDatabase进行认证。
Host
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
Host虚拟主机,定义在Engine下面,一个Engine下面可以有多个Host,在一个Host下面可以有多个Context。
Value
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
Value在这里是阀门的意思,可以拦截http请求,可以定义在任何容器中。
SingleSignOn 是单点登录,AccessLogValve是访问日志的记录。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# tomcat
# 7
# server.xml
# tomcat7的server.xml
# tomcat7.0
# 关于tomcat的server.xml里host节点配置的一些说明
# 详述 tomcat 中的 server.xml 配置文件示例
# 基于tomcat配置文件server.xml详解
# Tomcat中修改server.xml和content.xml后自动还原问题解决
# Tomcat主配置文件server.xml详解
# 多个
# 是一个
# 虚拟主机
# 单点
# 配置文件
# 在这里
# 而在
# 只会
# 值为
# 启动时
# 大家多多
# 安全检查
# 应用程序
# 有一个
# 端口号
# 重定向
# 操作系统
# 有两个
# 目录下
# 是用来
相关文章:
历史网站制作软件,华为如何找回被删除的网站?
如何选择建站程序?包含哪些必备功能与类型?
天津个人网站制作公司,天津网约车驾驶员从业资格证官网?
网站网页制作专业公司,怎样制作自己的网页?
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
制作表格网站有哪些,线上表格怎么弄?
如何选择靠谱的建站公司加盟品牌?
建站主机选购指南:核心配置优化与品牌推荐方案
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
大连网站设计制作招聘信息,大连投诉网站有哪些?
设计网站制作公司有哪些,制作网页教程?
电商网站制作价格怎么算,网上拍卖流程以及规则?
在线制作视频的网站有哪些,电脑如何制作视频短片?
内部网站制作流程,如何建立公司内部网站?
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
如何将凡科建站内容保存为本地文件?
如何选择PHP开源工具快速搭建网站?
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
兔展官网 在线制作,怎样制作微信请帖?
建站之星安装后界面空白如何解决?
网站图片在线制作软件,怎么在图片上做链接?
,怎么用自己头像做动态表情包?
中山网站推广排名,中山信息港登录入口?
如何快速生成凡客建站的专业级图册?
如何通过FTP空间快速搭建安全高效网站?
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
网站制作的步骤包括,正确网址格式怎么写?
定制建站如何定义?其核心优势是什么?
建站之星云端配置指南:模板选择与SEO优化一键生成
如何在阿里云虚拟服务器快速搭建网站?
已有域名如何快速搭建专属网站?
网站制作网站,深圳做网站哪家比较好?
外贸公司网站制作,外贸网站建设一般有哪些步骤?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
香港服务器网站推广:SEO优化与外贸独立站搭建策略
定制建站模板如何实现SEO优化与智能系统配置?18字教程
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
建站VPS能否同时实现高效与安全翻墙?
网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
如何在西部数码注册域名并快速搭建网站?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
建站主机功能解析:服务器选择与快速搭建指南
如何确保西部建站助手FTP传输的安全性?
高性价比服务器租赁——企业级配置与24小时运维服务
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
PHP 500报错的快速解决方法
*请认真填写需求信息,我们会在24小时内与您取得联系。