1.虚拟目录
1.1更改主目录
在默认安装后,tomcat的主目录是webapps/root目录,如果我们想改变tomcat的主目录的话可以这样做:
<Context path="/" docBase="/www8080/nms" debug="0" reloadable="true" crossContext="true"/>
path为虚拟路径,访问时的路径,注意:一定要加“/”
debug建议设置为0,reloadable设置为true。
这样重新启动tomcat,我们的主目录就被设置为jeasyCMS这个项目了,
主目录的意思是说当访问webserver时,如果没有写明具体项目,系统默认进入的项目目录。
访问地址:http://localhost:8080
1.2设置虚拟目录
<Context path="/nms" docBase="/www8080/nms" reloadable="true" debug="0">
</Context>
访问地址: http://localhost:8080/nms
由上可知,主目录还是虚拟目录主要是path的设置
*额外说明:
我们设置虚拟目录和主目录,都会在C:\Tomcat\conf\Catalina\localhost目录下生成相应的Xml文件,因此,当我们在 server.Xml里面删除了主目录和虚拟目录的设置后,如果系统还没有生效,这时候我们就要察看一下这个目录下的Xml文件是不是已经被删除了,如果 没有被删除,他还是对tomcat起作用的,我们必须手动删除。
通过测试发现,每当我们访问一个地址的时 候,tomcat首先是到C:\Tomcat\conf\Catalina\ localhost目录下去察看有没有存在主目录或虚拟目录的Xml文件,如果有Xml文件,就按Xml里的路径进行访问,如果没有Xml文件,就到 server.Xml文件里去察看是否配置context标签,如果配置了context标签,则在C:\Tomcat\conf\Catalina\ localhost目录下生成一个对应的Xml文件,以便于下次直接验证而不再访问server.Xml,与此同时打开context里指定的路径,如 果 server.Xml里没有配置context标签,则返回访问错误页面。
基于以上,我们其实可以直接在C:\Tomcat\conf\Catalina\localhost下建立一个Xml文件,用于主目录或者虚拟目录,而不需要去修改server.Xml就可以达到配置主目录和虚拟目录的目的,具体Xml的格式可以如下:
<?Xml version='1.0' encoding='utf-8'?>
<Context crossContext="true" docBase="E:/tomcatApp/JeasyCMS" path="" reloadable="true">
</Context>
具体是主目录的配置还是虚拟目录的配置取决于path的值。另外主目录文件名必须是ROOT.Xml(root大写),而虚拟目录的文件名称和虚拟目录的名称一致并且为小写,譬如:
<?Xml version='1.0' encoding='utf-8'?>
<Context crossContext="true" docBase="E:/tomcatApp/JeasyCMS" path="\cms" reloadable="true">
</Context>
以上则定义了一个名为:cms的虚拟目录,同时要将以上文本保存为cms.Xml文件。
///
Tomcat里 appBase和docBase的区别
<host appBase="d:/aaa">
<Context path="/smswap" reloadable="true" docBase="D:\workspace\smswap\WebRoot"></Context>
</host>
我们先看appBase,这个目录表示:
1 这个目录下面的子目录将自动被部署为应用。
2 这个目录下面的.war文件将被自动解压缩并部署为应用
而docBase只是指向了你某个应用的目录,这个可以和appBase没有任何关系。
总结:
如果你想自己指定路径,那么应该在docBase里面
如果你想简单,那么直接把他们复制到appBase下面就行了
如果你把他们弄重复了,也就是2个指向了一个目录,看上去也能运行,但你的应用下面的每个子目录,其实是被部署为单独的应用的。
比如你的应用为
myApp, 放在了
d:\project\myApp
里面有2个子目录
d:\project\myApp\images
d:\project\myApp\js
你可以通过
(1) 设置 appBase 指向 d:\project 来让系统自动部署
(2) 你可以手工指定docBase到 d:\project\myApp
(3) 如果你指定了 appBase到 d:\project\myApp 那么
d:\project\myApp\images这个将不再是普通的子目录,而是一个单独的虚拟目录,或者叫应用了。因为其被自动部署
d:\project\myApp\js 也一样的后果
2.虚拟主机
<Host name="www.nms.com" debug="0" appBase="webapps">
<Context path="" docBase="nms" debug="0"/>
</Host>
虚拟目录和虚拟主机的区别是,一个在host内,一个是新建host
3.tomcat同时打开多个端口
就是server.xml中的service标签内容重新复制一遍,并修改相应端口即可
并修改 <Service name="Catalina"> 为 <Service name="Catalina2">
<Engine name="Catalina" defaultHost="localhost">为 <Engine name="Catalina2" defaultHost="localhost">
1.1更改主目录
在默认安装后,tomcat的主目录是webapps/root目录,如果我们想改变tomcat的主目录的话可以这样做:
<Context path="/" docBase="/www8080/nms" debug="0" reloadable="true" crossContext="true"/>
path为虚拟路径,访问时的路径,注意:一定要加“/”
debug建议设置为0,reloadable设置为true。
这样重新启动tomcat,我们的主目录就被设置为jeasyCMS这个项目了,
主目录的意思是说当访问webserver时,如果没有写明具体项目,系统默认进入的项目目录。
访问地址:http://localhost:8080
1.2设置虚拟目录
<Context path="/nms" docBase="/www8080/nms" reloadable="true" debug="0">
</Context>
访问地址: http://localhost:8080/nms
由上可知,主目录还是虚拟目录主要是path的设置
*额外说明:
我们设置虚拟目录和主目录,都会在C:\Tomcat\conf\Catalina\localhost目录下生成相应的Xml文件,因此,当我们在 server.Xml里面删除了主目录和虚拟目录的设置后,如果系统还没有生效,这时候我们就要察看一下这个目录下的Xml文件是不是已经被删除了,如果 没有被删除,他还是对tomcat起作用的,我们必须手动删除。
通过测试发现,每当我们访问一个地址的时 候,tomcat首先是到C:\Tomcat\conf\Catalina\ localhost目录下去察看有没有存在主目录或虚拟目录的Xml文件,如果有Xml文件,就按Xml里的路径进行访问,如果没有Xml文件,就到 server.Xml文件里去察看是否配置context标签,如果配置了context标签,则在C:\Tomcat\conf\Catalina\ localhost目录下生成一个对应的Xml文件,以便于下次直接验证而不再访问server.Xml,与此同时打开context里指定的路径,如 果 server.Xml里没有配置context标签,则返回访问错误页面。
基于以上,我们其实可以直接在C:\Tomcat\conf\Catalina\localhost下建立一个Xml文件,用于主目录或者虚拟目录,而不需要去修改server.Xml就可以达到配置主目录和虚拟目录的目的,具体Xml的格式可以如下:
<?Xml version='1.0' encoding='utf-8'?>
<Context crossContext="true" docBase="E:/tomcatApp/JeasyCMS" path="" reloadable="true">
</Context>
具体是主目录的配置还是虚拟目录的配置取决于path的值。另外主目录文件名必须是ROOT.Xml(root大写),而虚拟目录的文件名称和虚拟目录的名称一致并且为小写,譬如:
<?Xml version='1.0' encoding='utf-8'?>
<Context crossContext="true" docBase="E:/tomcatApp/JeasyCMS" path="\cms" reloadable="true">
</Context>
以上则定义了一个名为:cms的虚拟目录,同时要将以上文本保存为cms.Xml文件。
///
Tomcat里 appBase和docBase的区别
<host appBase="d:/aaa">
<Context path="/smswap" reloadable="true" docBase="D:\workspace\smswap\WebRoot"></Context>
</host>
我们先看appBase,这个目录表示:
1 这个目录下面的子目录将自动被部署为应用。
2 这个目录下面的.war文件将被自动解压缩并部署为应用
而docBase只是指向了你某个应用的目录,这个可以和appBase没有任何关系。
总结:
如果你想自己指定路径,那么应该在docBase里面
如果你想简单,那么直接把他们复制到appBase下面就行了
如果你把他们弄重复了,也就是2个指向了一个目录,看上去也能运行,但你的应用下面的每个子目录,其实是被部署为单独的应用的。
比如你的应用为
myApp, 放在了
d:\project\myApp
里面有2个子目录
d:\project\myApp\images
d:\project\myApp\js
你可以通过
(1) 设置 appBase 指向 d:\project 来让系统自动部署
(2) 你可以手工指定docBase到 d:\project\myApp
(3) 如果你指定了 appBase到 d:\project\myApp 那么
d:\project\myApp\images这个将不再是普通的子目录,而是一个单独的虚拟目录,或者叫应用了。因为其被自动部署
d:\project\myApp\js 也一样的后果
2.虚拟主机
<Host name="www.nms.com" debug="0" appBase="webapps">
<Context path="" docBase="nms" debug="0"/>
</Host>
虚拟目录和虚拟主机的区别是,一个在host内,一个是新建host
3.tomcat同时打开多个端口
就是server.xml中的service标签内容重新复制一遍,并修改相应端口即可
并修改 <Service name="Catalina"> 为 <Service name="Catalina2">
<Engine name="Catalina" defaultHost="localhost">为 <Engine name="Catalina2" defaultHost="localhost">