成都网站开发公司,站长工具怎么关掉,定制网站建设程序流程,wordpress淘宝客排名主题一、server.xml详解
Tomcat各组件关系图
1、Server
server.xml的最外层元素。
常用属性#xff1a;
port#xff1a;Tomcat监听shutdown命令的端口。
shutdown#xff1a;通过指定的端口#xff08;port#xff09;关闭Tomcat所需的字符串。修改shutd…一、server.xml详解
Tomcat各组件关系图
1、Server
server.xml的最外层元素。
常用属性
portTomcat监听shutdown命令的端口。
shutdown通过指定的端口port关闭Tomcat所需的字符串。修改shutdown的值对shutdown.bat无影响
2. Listener
Listener即监听器负责监听特定的事件当特定事件触发时Listener会捕捉到该事件并做出相应处理。Listener通常用在Tomcat的启动和关闭过程。Listener可嵌在Server、Engine、Host、Context内
常用属性
className指定实现org.apache.catalina.LifecycleListener接口的类
3. GlobalNamingResources
GlobalNamingResources用于配置JNDI
4. Service
Service包装Executor、Connector、Engine以组成一个完整的服务
常用属性
className指定实现org.apache.catalina. Service接口的类默认值为org.apache.catalina.core.StandardService
nameService的名字
Server可以包含多个Service组件
5. Executor
Executor即Service提供的线程池供Service内各组件使用
常用属性
className指定实现org.apache.catalina. Executor接口的类默认值为org.apache.catalina.core. StandardThreadExecutor
name线程池的名字
daemon是否为守护线程默认值为true
maxIdleTime总线程数高于minSpareThreads时空闲线程的存活时间单位ms默认值为60000即1min
maxQueueSize任务队列上限默认值为Integer.MAX_VALUE(2147483647超过此值将拒绝
maxThreads线程池内线程数上限默认值为200
minSpareThreads线程池内线程数下限默认值为25
namePrefix线程名字的前缀。线程名字通常为namePrefix threadNumber
prestartminSpareThreads是否在Executor启动时就生成minSpareThreads个线程。默认为false
threadPriorityExecutor内线程的优先级默认值为5Thread.NORM_PRIORITY
threadRenewalDelay重建线程的时间间隔。重建线程池内的线程时为了避免线程同时重建每隔threadRenewalDelay单位ms重建一个线程。默认值为1000设置为负则不重建
6. Connector
Connector是Tomcat接收请求的入口每个Connector有自己专属的监听端口
Connector有两种HTTP Connector和AJP Connector
常用属性
portConnector接收请求的端口
protocolConnector使用的协议HTTP/1.1或AJP/1.3
connectionTimeout每个请求的最长连接时间单位ms
redirectPort处理http请求时收到一个SSL传输请求该SSL传输请求将转移到此端口处理
executor指定线程池如果没设置executor可在Connector标签内设置maxThreads默认200、minSpareThreads默认10
acceptCountConnector请求队列的上限。默认为100。当该Connector的请求队列超过acceptCount时将拒绝接收请求
7. Engine
Engine负责处理Service内的所有请求。它接收来自Connector的请求并决定传给哪个Host来处理Host处理完请求后将结果返回给EngineEngine再将结果返回给Connector
常用属性
nameEngine的名字
defaultHost指定默认Host。Engine接收来自Connector的请求然后将请求传递给defaultHostdefaultHost 负责处理请求
className指定实现org.apache.catalina. Engine接口的类默认值为org.apache.catalina.core. StandardEngine
backgroundProcessorDelayEngine及其部分子组件Host、Context调用backgroundProcessor方法的时间间隔。backgroundProcessorDelay为负将不调用backgroundProcessor。backgroundProcessorDelay的默认值为10
注Tomcat启动后Engine、Host、Context会启动一个后台线程定期调用backgroundProcessor方法。backgroundProcessor方法主要用于重新加载Web应用程序的类文件和资源、扫描Session过期
jvmRouteTomcat集群节点的id。部署Tomcat集群时会用到该属性
Service内必须包含一个Engine组件
Service包含一个或多个Connector组件Service内的Connector共享一个Engine
8. Host
Host负责管理一个或多个Web项目
常用属性
nameHost的名字
appBase存放Web项目的目录绝对路径、相对路径均可
unpackWARs当appBase下有WAR格式的项目时是否将其解压解成目录结构的Web项目。设成false则直接从WAR文件运行Web项目
autoDeploy是否开启自动部署。设为trueTomcat检测到appBase有新添加的Web项目时会自动将其部署
startStopThreads线程池内的线程数量。Tomcat启动时Host提供一个线程池用于部署Web项目startStopThreads为0并行线程数系统CPU核数startStopThreads为负数并行线程数系统CPU核数startStopThreads如果系统CPU核数startStopThreads小于1并行线程数设为1startStopThreads为正数并行线程数 startStopThreadsstartStopThreads默认值为1
startStopThreads为默认值时Host只提供一个线程用于部署Host下的所有Web项目。如果Host下的Web项目较多由于只有一个线程负责部署这些项目因此这些项目将依次部署最终导致Tomcat的启动时间较长。此时修改startStopThreads值增加Host部署Web项目的并行线程数可降低Tomcat的启动时间
Tomcat配置多Host可参考此文http://grass51.blog.51cto.com/4356355/1123400
9. Context
Context代表一个运行在Host上的Web项目。一个Host上可以有多个Context。将一个Web项目D:\MyApp添加到Tomcat在Host标签内添加Context标签
常用属性
path该Web项目的URL入口。path设置为””输入http://localhost:8080即可访问MyApppath设置为”/test/MyApp”输入http://localhost:8080/test/MyApp才能访问MyApp
docBaseWeb项目的路径绝对路径、相对路径均可相对路径是相对于CATALINA_HOME\webapps
reloadable设置为trueTomcat会自动监控Web项目的/WEB-INF/classes/和/WEB-INF/lib变化当检测到变化时会重新部署Web项目。reloadable默认值为false。通常项目开发过程中设为true项目发布的则设为false
crossContext设置为true该Web项目的Session信息可以共享给同一host下的其他Web项目。默认为false
10. Cluster
Tomcat集群配置。
11. Realm
Realm可以理解为包含用户、密码、角色的”数据库”。Tomcat定义了多种Realm实现JDBC Database Realm、DataSource Database Realm、JNDI Directory Realm、UserDatabase Realm等
12. Valve
Valve可以理解为Tomcat的拦截器而我们常用filter为项目内的拦截器。Valve可以用于Tomcat的日志、权限等。Valve可嵌在Engine、Host、Context内
二、实例
规划
网站网页目录/web/www 域名www.test1.com
论坛网页目录/web/bbs URLbbs.test1.com/bbs
网站管理程序$CATALINA_HOME/wabapps URLmanager.test.com 允许访问地址172.23.136.* conf/server.xml
Server port8005 shutdownSHUTDOWN Listener classNameorg.apache.catalina.core.AprLifecycleListener SSLEngineon / Listener classNameorg.apache.catalina.core.JasperListener / Listener classNameorg.apache.catalina.core.JreMemoryLeakPreventionListener / Listener classNameorg.apache.catalina.mbeans.GlobalResourcesLifecycleListener / Listener classNameorg.apache.catalina.core.ThreadLocalLeakPreventionListener / GlobalNamingResources !-- 全局命名资源来定义一些外部访问资源其作用是为所有引擎应用程序所引用的外部资源的定义 --! Resource nameUserDatabase authContainer typeorg.apache.catalina.UserDatabase descriptionUser database that can be updated and saved factoryorg.apache.catalina.users.MemoryUserDatabaseFactory pathnameconf/tomcat-users.xml / /GlobalNamingResources !-- 定义的一个名叫“UserDatabase”的认证资源将conf/tomcat-users.xml加载至内存中在需要认证的时候到内存中进行认证 -- Service nameCatalina !-- # 定义Service组件同来关联Connector和Engine一个Engine可以对应多个Connector每个Service中只能一个Engine --! Connector port80 protocolHTTP/1.1 connectionTimeout20000 redirectPort8443 / !-- 修改HTTP/1.1的Connector监听端口为80.客户端通过浏览器访问的请求只能通过HTTP传递给tomcat。 -- Connector port8009 protocolAJP/1.3 redirectPort8443 / Engine nameCatalina defaultHosttest.com !-- 修改当前Engine默认主机是www.test.com -- Realm classNameorg.apache.catalina.realm.LockOutRealm Realm classNameorg.apache.catalina.realm.UserDatabaseRealm resourceNameUserDatabase/ /Realm # Realm组件定义对当前容器内的应用程序访问的认证通过外部资源UserDatabase进行认证 Host nametest.com appBase/web unpackWARstrue autoDeploytrue !-- 定义一个主机域名为test.com应用程序的目录是/web设置自动部署自动解压 -- Aliaswww.test.com/Alias !-- 定义一个别名www.test.com类似apache的ServerAlias -- Context path docBasewww/ reloadabletrue / !-- 定义该应用程序访问路径即访问www.test.com即可访问网页目录为相对于appBase下的www/即/web/www并且当该应用程序下web.xml或者类等有相关变化时自动重载当前配置即不用重启tomcat使部署的新应用程序生效 -- Context path/bbs docBase/web/bbs reloadabletrue / !-- 定义另外一个独立的应用程序访问路径为www.test.com/bbs该应用程序网页目录为/web/bbs -- Valve classNameorg.apache.catalina.valves.AccessLogValve directory/web/www/logs prefixwww_access. suffix.log pattern%h %l %u %t %r %s %b / !-- 定义一个Valve组件用来记录tomcat的访问日志日志存放目录为/web/www/logs如果定义为相对路径则是相当于$CATALINA_HOME并非相对于appBase这个要注意。定义日志文件前缀为www_access.并以.log结尾pattern定义日志内容格式具体字段表示可以查看tomcat官方文档 -- /Host Host namemanager.test.com appBasewebapps unpackWARstrue autoDeploytrue !-- 定义一个主机名为man.test.com应用程序目录是$CATALINA_HOME/webapps,自动解压自动部署 -- Valve classNameorg.apache.catalina.valves.RemoteAddrValve allow172.23.136.* / !-- 定义远程地址访问策略仅允许172.23.136.*网段访问该主机其他的将被拒绝访问 -- Valve classNameorg.apache.catalina.valves.AccessLogValve directory/web/bbs/logs prefixbbs_access. suffix.log pattern%h %l %u %t %r %s %b / !-- 定义该主机的访问日志 -- /Host /Engine /Service
/Server conf/tomcat-users.xml
?xml version1.0 encodingutf-8?
tomcat-users role rolenamemanager-gui / !-- 定义一种角色名为manager-gui -- user usernamecz passwordmanager$!!110 rolesmanager-gui / !-- 定义一个用户的用户名以及密码并赋予manager-gui的角色 --
/tomcat-users