TOMCAT多域名虚拟目录配置
TOMCAT 的域名配置现在很多的公司的网站都是用tomcat 作为应用服务区的,可是对于初学者,8080端口号是如何去掉的,这些网站是如何和域名绑定到一起的呢?一个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 下的时候,我们只需要把
----------------------------------------------------------------
域名绑定与虚拟目录设置:
server.xml 的修改方式如下:
(一)多域名绑定
1. 如果你要绑定网站, 首先是要把tomcat 的默认访问端口8080, 修改成80
原始:
修改后:
其实这里就是把port:8080,修改成port:80就可以了, 其他的参数不变
2. 接下来就是重点了哈哈...
单个域名绑定:
原始:
当然这里我把注释代码统统删除掉了, 省的碍眼
修改后:
多域名绑定:
这里面的参数还有很多, 我也不是很清楚, 不过这样做确实可以实现多域名绑定哈哈. 而且网站页面修改了只要直接覆盖就可以了,tomcat 可以自动更新类和页面, 当然如果修改了web.xml 或lib, 则需要重启tomcat 才可以.
(二)虚拟目录
(1)
其中,Host 标记是用来配置虚拟主机的,就是可以多个域名指向一个tomcat ,格式只要参考默认的就可以了。
这样我就可以通过 chengqun.202. com/chengqun访问我的这个虚拟目录了。
另外一种方法是:
unpackWARs="true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false">
这样设置以后,输入域名可以访问这个站点程序了(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 下加载这个项目 并且用个域名(www.pw88.com )来映射。这样我们可以加上下面这段代码 appBase="e:/workspace/LZWunpackWARs="true"autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false"> appBase 为项目的绝对路径,docBase 为WEB 目录 假如我现在的图片都放在d:/ext.lzw.com/img下,我想用个二级域名 (img.lzw.com )映射它,假如在d:/ext.lzw.com/img下放入一张图片1.jpg ,我们就 可以输入img.lzw.com/1.jpg来访问它了。。加上下面代码就可以实现了。。 autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false"> 最终我们要在本地访问域名,还得修改相爱HOST 文件。。打开 C:/WINDOWS/system32/drivers/etc/hosts 加上 127.0.0.1 www.pw88.com 127.0.0.1 img.lzw.com 对tomcat 下配置一ip 对多域名的方法详细如下, 按下面配置一定能成功, 经过测试了. className="org.apache.catalina.logger.FileLogger"directory="logs"prefix="localhost_log." suffix=".txt"timestamp="true"/> className="org.apache.catalina.logger.FileLogger"directory="logs"prefix="localhost_log." suffix=".txt"timestamp="true"/> caseSensitive="false" debug="0"> 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 localhost.com 指向gg 文件夹 10.1.1.241 one.localhost指向a 文件夹 10.1.1.241 one.localhost.com 指向a 文件夹 10.1.1.241 two.localhost指向b 文件夹 10.1.1.241 two.localhost.com 指向b 文件夹 经过多方面尝试, 终于在tomcat 下配置成功了. Tomcat 配置多域名和多虚拟路径如下: 修改conf/server.xml中 resourceName="UserDatabase"/> workDir="c:websdefaultwebwork" /> workDir="c:websdefaultwebworkVitualPath" /> xmlValidation="false" xmlNamespaceAware="false" > workDir="c:websdefaultwebwork" /> workDir="c:websdefaultwebworkVitualPath" /> 从上述的配置文件中可以看出,这个配置共配置了两个域名(不包括localhost ): www.defaultweb.com 和 www.anotherweb.com ,然后配置了localhost ,使之与 www.default.com 一样,这样输入IP 地址就能跑到www.defaultweb.com 了。 同样还可以看出,www.defaultweb.com 配置了两个虚拟路径,一个是默认路径"/",另一个是"/VitrualPath",并且他们都分别指定了各自的网站所在的文件目录。(localhost 与他的路径是一致的)。 但是,在配置www.anotherweb.com 时,为什么没有指定它的网站文件目录呢?这是利用了Tomcat 的相对路径,appBase="webapps_defaultweb" 表示,这个网站的文件放在 ${Tomcat_Home}/webapps_defaultweb中。你需要在${Tomcat_Home}/webapps_defaultweb中,建立ROOT 文件夹,并在ROOT 中放置你的网站。当然大家也可以直接用绝对路径配置,请参照www.default.com 的配置。当然,大家也可以看出www.anotherweb.com 并没有配置虚拟路径,大家如果需要的话,也可以自行配置。 PS : resourceName="UserDatabase"/>这部分是Server.xml 中本来就有的,大家没有必要动它。