TOMCAT多域名虚拟目录配置

TOMCAT的域名配置

现在很多的公司的网站都是用tomcat作为应用服务区的,可是对于初学者,8080端口号是如何去掉的,这些网站是如何和域名绑定到一起的呢?一个tomcat是如何绑定多域名?并且这些域名是如何对应不同的项目呢?这一系列的问题,今天就这个问题,我来说一下。

1. 域名。现在的域名不是很贵,有很多人都有,而我们注册域名的网站也会有一个DNS助解析,就是把服务器的IP绑定到这些域名上。

2. 我们域名有了,现在就来说说我们的项目;比如说我现在有两个项目都在我的这个tomcat 下面。那我们输入http://localhost:8080 /abc就可以访问

到我们abc这个项目了,但是端口号8080如何去掉呢?在tomcat的conf文件夹下有一个server.xml。我们打开这个文件,找到8080,只需要把8080改成80即可。当我们再次输入http://localhost/abc即可。

3. 可是我们的域名如何跟项目绑定到一起呢?我们再次找到tomcat下面的conf文件夹里面的server.xml。修改

xmlValidation="false"xmlNamespaceAware="false">

4. 当启动tomcat的时候,输入我们绑定的域名,是不是看到了我们的tomcat。可是我们想访问我们的项目还得再域名后面加上项目名称才能访问到,也就是说到现在我们的域名还没跟项目绑定到一起。我们在看一下第三部,想让我们的项目和域名绑定到一起,我们只需要在前面加上即可。

例如:

docBase="baidu" path="" reloadable="true" >

5. 当我们的有两个项目都放在同一个tomcat下的时候,我们只需要把加上两个既可以完成我们的2个项目的绑定,但是项目名称别忘了改哦。

----------------------------------------------------------------

域名绑定与虚拟目录设置:

server.xml 的修改方式如下:

(一)多域名绑定

1.如果你要绑定网站,首先是要把tomcat的默认访问端口8080,修改成80

原始:

修改后:

其实这里就是把port:8080,修改成port:80就可以了,其他的参数不变

2.接下来就是重点了哈哈...

单个域名绑定:

原始:

当然这里我把注释代码统统删除掉了,省的碍眼

修改后:

多域名绑定:

http://www.360docs.net/doc/info-069ec44758fafab069dc02ac.html

http://www.360docs.net/doc/info-069ec44758fafab069dc02ac.html

http://www.360docs.net/doc/info-069ec44758fafab069dc02ac.html

这里面的参数还有很多,我也不是很清楚,不过这样做确实可以实现多域名绑定哈哈.而且网站页面修改了只要直接覆盖就可以了,tomcat可以自动更新类和页面,当然如果修改了web.xml或lib,则需要重启tomcat才可以.

(二)虚拟目录

(1)

其中,Host标记是用来配置虚拟主机的,就是可以多个域名指向一个tomcat,格式只要参考默认的就可以了。

是Host标记的子元素吧,表示一个虚拟目录,它主要有两个属性,path就相当于虚拟目录名字,而docbase则是具体的文件位置。在这里我的虚拟路径名称为chengqun,实际上我的程序也就是html、jsp、servlet都放在了d:/wwwroot/chengqun这个目录下了。

这样我就可以通过chengqun.202. com/chengqun访问我的这个虚拟目录了。

另外一种方法是:

这样设置以后,输入域名可以访问这个站点程序了(Context path="/"这里不同)

(2)

没有指定默认站点,所以直接输入IP的时候,无法访问。如何让输入ip就可以访问指定的站点呢?

修改server.xml的

这样就可以实现了输入ip访问chengqun.202. com这个站点的程序了!

----------------------------------------

tomcat下的配置都在conf下的server.xml下实现。。。

里面从高到低分为:

Server

--Service

--Connector

--Engine

--Host

--Context

首先把通讯接口下的PORT改为80,这样就不用在浏览器中输入端口号了,如:

acceptCount="100"connectionTimeout="20000" disableUploadTimeout="true" />

HOST代表虚拟主机:

默认有

autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false">

所以我们平时都是直接输入http://localhost:端口号/项目名就好了。。

假如我现在有个项目在E盘下的workspace目录,项目名为LZW

我不想部署在tomcat下的webapp目录下,而是直接想在TOMCAT下加载这个项目

并且用个域名(http://www.360docs.net/doc/info-069ec44758fafab069dc02ac.html)来映射。这样我们可以加上下面这段代码

appBase="e:/workspace/LZWunpackWARs="true"autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false">

appBase为项目的绝对路径,docBase为WEB目录

假如我现在的图片都放在d:/http://www.360docs.net/doc/info-069ec44758fafab069dc02ac.html/img下,我想用个二级域名

(http://www.360docs.net/doc/info-069ec44758fafab069dc02ac.html)映射它,假如在d:/http://www.360docs.net/doc/info-069ec44758fafab069dc02ac.html/img下放入一张图片1.jpg,我们就

可以输入http://www.360docs.net/doc/info-069ec44758fafab069dc02ac.html/1.jpg来访问它了。。加上下面代码就可以实现了。。

autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false">

最终我们要在本地访问域名,还得修改相爱HOST文件。。打开

C:/WINDOWS/system32/drivers/etc/hosts

加上

127.0.0.1 http://www.360docs.net/doc/info-069ec44758fafab069dc02ac.html

127.0.0.1 http://www.360docs.net/doc/info-069ec44758fafab069dc02ac.html

对tomcat下配置一ip对多域名的方法详细如下,按下面配置一定能成功,经过测试了.

http://www.360docs.net/doc/info-069ec44758fafab069dc02ac.html

className="org.apache.catalina.logger.FileLogger"directory="logs"prefix="localhost_log." suffix=".txt"timestamp="true"/>

http://www.360docs.net/doc/info-069ec44758fafab069dc02ac.html

className="org.apache.catalina.logger.FileLogger"directory="logs"prefix="localhost_log." suffix=".txt"timestamp="true"/>

caseSensitive="false" debug="0">

http://www.360docs.net/doc/info-069ec44758fafab069dc02ac.html

directory="logs" prefix="localhost_log." suffix=".txt"

timestamp="true"/>

caseSensitive="false" debug="0">

因无域名解析服务器,所以在hosts上配,来模拟dns解析.

10.1.1.241 localhost指向gg文件夹

10.1.1.241 http://www.360docs.net/doc/info-069ec44758fafab069dc02ac.html 指向gg文件夹

10.1.1.241 one.localhost指向a文件夹

10.1.1.241 http://www.360docs.net/doc/info-069ec44758fafab069dc02ac.html 指向a文件夹

10.1.1.241 two.localhost指向b文件夹

10.1.1.241 http://www.360docs.net/doc/info-069ec44758fafab069dc02ac.html 指向b文件夹

经过多方面尝试,终于在tomcat下配置成功了.

Tomcat配置多域名和多虚拟路径如下:

修改conf/server.xml中部分的,每个...代表一个域名(包括localhost):

resourceName="UserDatabase"/>

workDir="c:\websdefaultwebwork" />

workDir="c:\websdefaultwebworkVitualPath" />

workDir="c:\websdefaultwebwork" />

workDir="c:\websdefaultwebworkVitualPath" />

从上述的配置文件中可以看出,这个配置共配置了两个域名(不包括localhost):

http://www.360docs.net/doc/info-069ec44758fafab069dc02ac.html 和http://www.360docs.net/doc/info-069ec44758fafab069dc02ac.html ,然后配置了localhost,使之与

http://www.360docs.net/doc/info-069ec44758fafab069dc02ac.html 一样,这样输入IP地址就能跑到http://www.360docs.net/doc/info-069ec44758fafab069dc02ac.html 了。

同样还可以看出,http://www.360docs.net/doc/info-069ec44758fafab069dc02ac.html 配置了两个虚拟路径,一个是默认路径"/",另一个是"/VitrualPath",并且他们都分别指定了各自的网站所在的文件目录。(localhost与他的路径

是一致的)。

但是,在配置http://www.360docs.net/doc/info-069ec44758fafab069dc02ac.html 时,为什么没有指定它的网站文件目录呢?这是利用

了Tomcat的相对路径,appBase="webapps_defaultweb" 表示,这个网站的文件放在${Tomcat_Home}/webapps_defaultweb中。你需要在${Tomcat_Home}/webapps_defaultweb中,建立ROOT文件夹,并在ROOT中放置你的网站。当然大家也可以直接用绝对路径配置,请参照http://www.360docs.net/doc/info-069ec44758fafab069dc02ac.html 的配置。当然,大家也可以看出http://www.360docs.net/doc/info-069ec44758fafab069dc02ac.html 并没有配置虚拟路径,大家如果需要的话,也可以自行配置。

PS:

resourceName="UserDatabase"/>这部分是Server.xml中本来就有的,大家没有必要动它。

相关文档