大学里学习JAVA这一块,主要关注点不在Tomcat配置,对于Tomcat配置的了解也就停留在能改改端口,配置jndi数据库连接池,工作中了解到可以通过Host的appBase属性改变应用的存放路径,进而深入学习一下。
server.xml
Tomcat的主配置文件,最常用的配置文件,下面通过能实现的功能进行理解,修改端口等功能不在赘述。
多端口开启多项目
Server是顶级组件,代表一个 Tomcat 实例。可以包含一个或多个 Services ,其中每个 Service 都有自己的 Engines 和 Connectors。因此实现多端口开启多个项目,直接复制一个Service节点,然后进行配置即可。
自定义项目路径
Host属性appBase默认webapps值,这也就是最初直接将项目放入webapps能自动部署的原因,很多时候项目不愿意和Tomcat放置在一起,或者因为权限问题,无法访问Tomcat文件,可以通过这个属性自定义项目路径。
虚拟目录
默认情况下,可以通过ip:port访问appBase下指定的项目,比如要访问A项目,访问方式为ip:port/A,但是这样会将我们的项目路径暴露在用户面前,可以通过Context.xml配置,或直接在Host下增加子节点Context的方式解决这个问题。方便理解,假定Host节点配置如下:
<Host name="www.test.com" appBase="/web" unpackWARs="true" autoDeploy="true">
Context节点配置举例
<Context path="" docBase="www/" reloadable="true" />
<Context path="test" docBase="test/" reloadable="true" />
- path为空,必须定义一个,表示缺省访问。
- Host属性appBase表示访问name属性能到达的目录,docBase理解成访问具体项目,上述1访问www.test.com路径,网页目录为appBase下的www。
- 上述二访问方式:www.test.com/test,网页目录为appBase下的/web/test。
web.xml
- 默认文件设置,welcome-file-list
- 报错文件设置
- 会话超时设置
- 过滤器设置
context.xml
- Tomcat 5.5之前
Context体现在/conf/server.xml中的Host里的
元素,它由Context接口定义。每个 元素代表了运行在虚拟主机上的单个Web应用。 <Context path="/xxx" docBase="xxx" debug="0" reloadbale="true">
- path:即要建立的虚拟目录,,注意是/xxx,它指定访问Web应用的URL入口,如http://localhost:8080/xxx/
- docBase:为实际目录在硬盘上的位置(应用程序的路径或者是WAR文件存放的路径)
- reloadable:如果这个属性设为true,Tomcat服务器在运行状态下会监视在WEB-INF/classes和Web-INF/lib目录CLASS文件的改变,如果监视到有class文件被更新,服务器自动重新加载Web应用,这样我们可以在不重起tomcat的情况下改变应用程序 一个Host元素中嵌套任意多的Context元素。每个Context的路径必须是惟一的,由path属性定义。另外,你必须定义一个path=“”的context,这个Context称为该虚拟主机的缺省web应用,用来处理那些不能匹配任何Context的Context路径的请求。
- Tomcat 5.5后 不推荐在server.xml中进行配置,而是在/conf/context.xml中进行独立的配置。因为server.xml是不可动态重加载的资源,服务器一旦启动了以后,要修改这个文件,就得重启服务器才能重新加载。而context.xml文件则不然,tomcat服务器会定时去扫描这个文件。一旦发现文件被修改(时间戳改变了),就会自动重新加载这个文件,而不需要重启服务器。
- 作用范围
- tomcat server级别:在/conf/context.xml里配置
- Host级别:在/conf/Catalina/${hostName}里添加context.xml,继而进行配置
- web app 级别:在/conf/Catalina/${hostName}里添加${webAppName}.xml,继而进行配置
- context节点--子节点
- WatchedResource
- Resource
tomcat-users.xml
添加用户,使这个用户有权限进行管理。
- 管理入口:http://localhost:8080/manager/
- 应用程序列表:http://localhost:8080/manager/list
- 重新装载应用程序:http://localhost:8080/manager/reload?path=/examples
- 显示session信息:http://localhost:8080/manager/sessions?path=/examples
- 启动:http://localhost:8080/manager/start?path=/examples
- 关闭:http://localhost:8080/manager/stop?path=/examples
启动显示日志信息
./bin/startup.sh & tail -f logs/catalina.out启动且显示日志信息
sh startup.sh
sh shutdown.sh