当前位置: 代码迷 >> 综合 >> TOMCAT笔记(一)之 目录、虚拟主机、SERVER.XML、TOOL管理原理小记
  详细解决方案

TOMCAT笔记(一)之 目录、虚拟主机、SERVER.XML、TOOL管理原理小记

热度:61   发布时间:2023-12-18 23:41:43.0
关于Tomcat Administration 

TOOL左界面
     Name: ok.aaa.com [localhost]
Application Base: webapps //相对于TOMCAT_HOME
Host (ok.aaa.com[localhost])
Context (/)     //ROOT物理目录 
          //但作为DOCBASE来说为虚拟目录(相对于Application Base)
          //它是url://ok.aaa.com [localhost] 虚拟(别名)根目录,这是和APACHE不一样的地方!
          //Application Base才是实实在在的url://ok.aaa.com [localhost]根目录 ,
          //启动时系统会自动生成(通过测试ROOT下的WEB-INF、WEB.XML)
Context (/admin)  //系统默认(删除对应的admin.xml其不能自动还原)
Context (/balancer) //原理同上Context (/admin)
Context (/jsp-examples)  //相对于Application Base,启动时系统会自动生成。
Context (/manager)    //原理同上Context (/admin)作
Context (/servlets-examples)   //物理目录,相对于Application Base,启动时系统会自动生成。
Context (/tomcat-docs)   //物理目录,相对于Application Base,启动时系统会自动生成。
Context (/webdav)    //物理目录,相对于Application Base,启动时系统会自动生成。

原理:TOMCAT启动时会搜索HOST的APPBASE下的物理目录,物理目录有WEB-INF、WEB.XML信息则载入到TOOL界面,无时不载入,不过不载入的物理目录当然还是可以通过URL来访问;虚拟目录(alias)对应的xml文件存在则能载入,无时(相应的XML被删除)不载入,通过URL不可访。但是ROOT就不一样了,把ROOT.XML删了后,它也能被载入,因为它有双重性。每个目录只要都被正常载入,相应在TOMCAT_HOME\Catalina\ok.aaa.com [localhost] \生成其同名的XML,这个名称可以被更改,不过最好用可示性较强的文字来命名。

关于SERVER.XML
- <Service name="Catalina">
<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="80" redirectPort="8443" /> //url端口为80,默认是8080
<Connector port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443" />
- <Engine defaultHost="aaa.com" name="Catalina">//这里是指默认主机,也就是通过IP、localhost来访问的主机
- <Host appBase="webapps" name="ok.aaa.com">//虚拟主机ok.aaa.com
<Alias>ok.bbb.com</Alias>//虚拟主机ok.aaa.com的别名和实实在在的url://ok.aaa.com [localhost]根目录webapps
<Alias>yes.aaa.com</Alias> //同上
<Alias>yes.bbb.com</Alias> //同上
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true" />
</Host>
- <Host appBase="f://myweb" name="aaa.com">//虚拟主机aaa.com和实实在在的url://aaa.com [localhost]根目录f://myweb
<Alias>bbb.com</Alias>//虚拟主机aaa.com的别名
<Alias>www.bbb.com</Alias> //同上
<Alias>www.aaa.com</Alias> //同上
<Logger className="org.apache.catalina.logger.FileLogger" prefix="aaa.com_log." suffix="txt" timestamp="true" />

<Context displayName="freeweb描述" docBase="d://freeweb" path="abc" useNaming="false" /> //别名abc指向物理目录d://freeweb
</Host>
<Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true" />
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" />
</Engine>
</Service>
</Server>

注意:这里<Context displayName="freeweb描述" docBase="d://freeweb" path="abc" useNaming="false" /> //别名abc指向物理目录d://freeweb 在添加之后,要重启TOMCAT,这时会在TOMCAT_HOME/conf/Catalina/aaa.com/下生成一个abc.xml.其内容就是:

<?xml version="1.0" encoding="utf-8" ?>

<Context displayName="freeweb描述" docBase="d://freeweb" path="abc" useNaming="false" />

这之后,再入Tomcat Administration TOOL COMMIT CHANGE 一下 ,SERVER.XML 里那句<Context~~~~~~~~~~~ />就没了。呵 。。

最后我要说的是,当进行备份时,一定不要仅把SERVER.XML WEB.XML .....这些文件备下来(和APACHE不一样),备就备整个conf目录!!!我之前就是以为在SERVER.XML写了CONTEXT就可行了,目录的事全交给SERVER.XML来管。可是这样是非常错误的想法。SERVER.XML是不保留CONTEXT的,它只是把你加入Context生成文件,之后删除你在它里面添的语句。它只有生成功能,没有对其的直接管理功能,功能都给相应的alias的XML文件了!
  相关解决方案