浅析Tomcat 服务器下4个xml配置文件

一、context.xml 文件

Context.xml 是 Tomcat 公用的环境配置,tomcat 服务器会定时去扫描这个文件。一旦发现文件被修改(时间戳改变了),就会自动重新加载这个文件,而不需要重启服务器。推荐在 $CATALINA_BASEconf/context.xml 中进行独立的配置。因为 server.xml
是不可动态重加载的资源,服务器一旦启动了以后,要修改这个文件,就得重启服务器才能重新加载,而context.xml 文件则不然。

<Context path="/eml" docBase="eml" debug="0" reloadbale="true" privileged="true">  
    <WatchedResource>WEB-INF/web.xml</WatchedResource>  
    <WatchedResource>WEB-INF/eml.xml</WatchedResource> 监控资源文件,如果web.xml || eml.xml改变了,则自动重新加载改应用。  
    <Resource name="jdbc/testSiteds" 表示指定的jndi名称  
    auth="Container" 表示认证方式,一般为Container  
    type="javax.sql.DataSource"      maxActive="100" 连接池支持的最大连接数  
    maxIdle="40" 连接池中最多可空闲maxIdle个连接  
    maxWait="30000" 连接池中连接用完时,新的请求等待时间,毫秒  
    username="txl" 表示数据库用户名  
    password="123456" 表示数据库用户的密码  
    driverClassName="com.mysql.jdbc.Driver" 表示JDBC DRIVER  
    url="jdbc:mysql://localhost:3306/testSite" /> 表示数据库URL地址  
</Context>

context.xml 的三个作用范围:

1. tomcat server 级别:

在$CATALINA_BASE/conf/context.xml 里配置,如果你在这个地方配置、那么这个配置文件将会被所有的webApp共享 。

2. Host 级别:

在 $CATALINA_BASE/conf/Catalina/${hostName} 里添加 context.xml,继而进行配置,这个配置将会被这个主机上的所有webapp共享。

3. web app 级别:

在 $CATALINA_BASE/conf/Catalina/${hostName} 里添加 ${webAppName}.xml,继而进行配置。

二、web.xml文件

 Web应用程序描述文件,都是关于是Web应用程序的配置文件。所有Web应用的 web.xml 文件的父文件。

<!-- 
filter 配置Servlet过滤器 
filter-name 定义过滤器的名字。当有多个过滤器时,不能同名 
filter-class 指定实现这一过滤的类,这个类负责具体的过滤事务 
--> <filter> 
<filter-name>SampleFilter</filter-name> 
<filter-class>mypack.SampleFilter</filter-class> 
</filter> 


<!-- 
filter-mapping 设定过滤器负责过滤的URL 
filter-name 过滤器名。这里的名字一定要和filter中的过滤器名匹配 
url-pattern 指定过滤器负责过滤的URL 
--> <filter-mapping> 
<filter-name>SampleFilter</filter-name> 
<url-pattern>*.jsp</url-pattern> 
</filter-mapping> <!-- 
servlet 配置Servlet. 
servlet-name 定义Servlet的名字 
servlet-class 指定实现这个servlet的类 
init-param 定义Servlet的初始化参数和参数值,可有多个init-param。在servlet类中通过getInitParamenter(String name)方法访问初始化参数 
load-on-startup 指定当Web应用启动时,装载Servlet的次序。 
当值为正数或零时:Servlet容器先加载数值小的servlet,再依次加载其他数值大的servlet.
当值为负或未定义:Servlet容器将在Web客户首次访问这个servlet时加载它 
--> <servlet> 
<servlet-name>SampleServlet</servlet-name> 
<servlet-class>mypack.SampleServlet</servlet-class> 
<init-param> 
<param-name>initParam1</param-name> 
<param-value>2</param-value> 
</init-param> 
<load-on-startup>1</load-on-startup> 
</servlet> 


<!-- 
配置servlet映射(下面代码为SampleServlet指定的相对URL为"/sample": 
servlet-name 指定servlet的名字,这里的名字应该和<Servlet>元素中定义的名字匹配。 
url-pattern 指定访问这个servlet的URL。只需给出相对路径。 
--> <servlet-mapping> 
<servlet-name>SampleServlet</servlet-name> 
<url-pattern>/sample</url-pattern> 
</servlet-mapping> 


<!--配置session session用来设定HttpSession的生命周期。单位(秒)--> <session-config> 
<session-timeout>30</session-timeout> 
</session-config> 


<!--配置Wel0come0文件清单--> <welcome-file-list> 
<welcome-file>login.jsp</welcome-file> 
<welcome-file>index.htm</welcome-file> 
</welcome-file-list>

三、server.xml文件

server.xml是对tomcat的设置,可以设置端口号,添加虚拟机这些的,是对服务器的设置

<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> 
  <!-- 定义的一个名叫“UserDatabase”的认证资源,将conf/tomcat-users.xml加载至内存中,在需要认证的时候到内存中进行认证 -->   <Service name="Catalina"> 
  <!-- # 定义Service组件,同来关联Connector和Engine,一个Engine可以对应多个Connector,每个Service中只能一个Engine --!> 
    <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 
    <!-- 修改HTTP/1.1的Connector监听端口为80.客户端通过浏览器访问的请求,只能通过HTTP传递给tomcat。还可以设置server与URIEncoding参数 -->     <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 
    <Engine name="Catalina" defaultHost="test.com"> 
    <!-- 修改当前Engine,默认主机是,www.test.com  -->     <Realm className="org.apache.catalina.realm.LockOutRealm"> 
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"                resourceName="UserDatabase"/> 
    </Realm> 
    # Realm组件,定义对当前容器内的应用程序访问的认证,通过外部资源UserDatabase进行认证 
      <Host name="test.com"  appBase="/web" unpackWARs="true" autoDeploy="true"> 
      <!--  定义一个主机,域名为:test.com,应用程序的目录是/web,设置自动部署,自动解压    -->         <Alias>www.test.com</Alias> 
        <!--    定义一个别名www.test.com,类似apache的ServerAlias -->         <Context path="" docBase="www/" reloadable="true" /> 
        <!--    定义该应用程序,访问路径"",即访问www.test.com即可访问,网页目录为:相对于appBase下的www/,即/web/www,并且当该应用程序下web.xml或者类等有相关变化时,自动重载当前配置,即不用重启tomcat使部署的新应用程序生效  -->         <Context path="/bbs" docBase="/web/bbs" reloadable="true" /> 
        <!--  定义另外一个独立的应用程序(虚拟主机),访问路径为:www.test.com/bbs,该应用程序网页目录为/web/bbs   -->         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/web/www/logs"                prefix="www_access." suffix=".log"                pattern="%h %l %u %t &quot;%r&quot; %s %b" /> 
        <!--   定义一个Valve组件,用来记录tomcat的访问日志,日志存放目录为:/web/www/logs如果定义为相对路径则是相当于$CATALINA_HOME,并非相对于appBase,这个要注意。定义日志文件前缀为www_access.并以.log结尾,pattern定义日志内容格式,具体字段表示可以查看tomcat官方文档   -->       </Host> 
      <Host name="manager.test.com" appBase="webapps" unpackWARs="true" autoDeploy="true"> 
      <!--   定义一个主机名为man.test.com,应用程序目录是$CATALINA_HOME/webapps,自动解压,自动部署   -->         <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="172.16.100.*" /> 
        <!--   定义远程地址访问策略,仅允许172.16.100.*网段访问该主机,其他的将被拒绝访问  -->         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/web/bbs/logs"                prefix="bbs_access." suffix=".log"                pattern="%h %l %u %t &quot;%r&quot; %s %b" /> 
        <!--   定义该主机的访问日志      -->       </Host> 
    </Engine> 
  </Service> 
</Server>

四、tomcat-users.xm

主要用于tomcat用户的创建和权限的编辑

<role rolename="manager-gui"/><role rolename="manager-script"/><role rolename="manager-jmx"/><role rolename="manager-status"/><user username="admin" password="111111" roles="manager-gui,manager-script,manager-jmx,manager-status"/>manager-gui - 允许访问HTML GUI和状态页面manager-script - 允许访问文本界面和状态页面manager-jmx - 允许访问JMX代理和状态页面manager-status - 只允许访问状态页面

精选原创推荐

docker容器部署Spring Profile参数策略

linux云服务器存储分区热挂载

Node的进程管理工具pm2

拒绝夜间上线:Eureka热部署服务

大厂必备:ansible 自动化工具

亲测好评:国产开源APM运维监控

APM钉钉告警二次开发pinpoint(附带源码)

Prometheus + Granafa 构建高大上的MySQL监控平台

syncd一款高效开源的代码部署工具

高效开发:IntelliJIDEA的这些Debug技巧你都知道吗

运维必备:goreplay流量复制工具

一款SQL高效审计工具|解放DBA双手

实用技能:git子模块功能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值