详解Tomcat服务器绑定多域名和虚拟目录的方法

tomcat采用默认安装,要想tamcat直接绑定多个域名,这里我们需要修改配置文件:C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\server.xml
server.xml 的修改方式如下:
(一)多域名绑定
1.如果你要绑定网站,首先是要把tomcat的默认访问端口8080,修改成80
原始:

<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />

修改后:

<Connector port="80" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />

其实这里就是把port:8080,修改成port:80就可以了,其他的参数不变
2.接下来就是重点了哈哈...
原始:

<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" />
</Engine>

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

修改后:

<Engine name="Catalina" defaultHost=[url]www.abc[/url].com>

<Host name="[url]www.abc[/url].com" appBase=="abcapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" 

<Host name=[url]www.cba.com[/url] appBase=="D:\cba" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" />

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"  />
</Engine>

这里解释一下上面的配置
Engine 的 dafaultHost :表示访问该tomcat默认进入的主机,注意一定不能是localhost,不然别人通过你的ip访问,就会默认进入tomcat的管理界面.
Host 的 name:表示该主机绑定的域名,如果绑定localhost则可以通过在浏览器中输入localhost访问该Host.
Host的 appBase:表示该主机绑定的文件存放路径,可以使用相对路径或绝对路径.
按照上面的配置:
1.如果我在浏览器中输入[url]http://localhost[/url] 则访问 C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\ROOT 下的网站
2.如果输入[url]http://www.abc.com[/url] 则访问 C:\Program Files\Apache Software Foundation\Tomcat 5.5\abcapps\ROOT 下的网站
3.如果输入[url]http://www.cba.com[/url] 则访问 D:\cba\ROOT 下的网站.
注意这里有一个ROOT目录需要创建,我们只要把网站放到相应的ROOT目录向下面,即可通过相应域名访问了.
这里面的参数还有很多,我也不是很清楚,不过这样做确实可以实现多域名绑定哈哈.而且网站页面修改了只要直接覆盖就可以了,tomcat可以自动更新类和页面,当然如果修改了web.xml或lib,则需要重启tomcat才可以.
(二)虚拟目录

<Host name="localhost" appBase="webapps"
    unpackWARs="true" autoDeploy="true"
    xmlValidation="false" xmlNamespaceAware="false">
<Context path="/cqq" docBase="f:\java\cqqapp" debug="0" reloadable="true" crossContext="true">
  </Host>

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

可以了。

<context>是Host标记的子元素吧,表示一个虚拟目录,它主要有两个属性,path就相当于虚拟目录名字,

而 docbase则是具体的文件位置。在这里我的虚拟路径名称为cqq,实际上我的程序也就是html、jsp、

servlet都 放在了f:\java\cqqapp这个目录下了。

这样我就可以通过 [url]http://127.0.0.1/cqq/[/url] 访问我的这个虚拟目录了。
另外一种方法是:
配置两个站点

<Host name="[url]www.xyz.com[/url]" debug="0" appBase="D:\Tomcat5.5\portal" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="D:/Tomcat5.5/portal" debug="0" reloadable="true"/>
</Host>
<Host name="[url]www.abc.com[/url]" appBase="D:\Tomcat5.5\hxw"
    unpackWARs="true" autoDeploy="true"
    xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="D:\Tomcat5.5\abc" debug="0" reloadable="true"/>
</Host>

这样设置以后,输入域名可以分别到两个站点
但由于没有指定默认站点,所以直接输入IP的时候,无法访问。
于是增加 D:\Tomcat5.5\conf\Catalina\localhost\ROOT.xml
内容如

<Context path="/" docBase="${catalina.home}/portal" debug="5" reloadable="true" crossContext="true">
</Context>

这样可以实现输入域名分别到个站点,输入IP就默认到D:/Tomcat5.5/portal这个站点
可是,可是,问题出现了
这两个站点启动相当消耗内存,TOMCAT内存设置我已经设到1400M了(再高TOMCAT5无法启动),所以不能同时启动三个应用。

大家有没有实现过,启一个应用而绑定多个域名的方法。
如下(这样写TOMCAT肯定是启动不了的,只是用来表达我的意思)

<Host name="[url]www.abc.com[/url],192.168.0.1" appBase="D:\Tomcat5.5\hxw"
    unpackWARs="true" autoDeploy="true"
    xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="D:\Tomcat5.5\abc" debug="0" reloadable="true"/>
</Host>

因为我是整合的,所以就不用改8080端口了哦~~~~~

(0)

相关推荐

  • Tomcat 中如何给 web 项目配置虚拟目录的方法

     为什么要给 web 项目配置虚拟目录? 初学 JavaWeb 时,会发现只要我们把 web 项目放到 Tomcat 的 webapps 目录下,再通过 http://localhost:8080/项目名称/某个页面 就可以访问该网站了.可是这样并不符合规范,最好还是把 web 项目文件和 Tomcat 的安装文件分开.那如何实现这个要求呢?当然是给 web 项目配置虚拟目录啦. 如何给 web 项目配置虚拟目录? 前面已经说了,我们要把项目文件和 Tomcat 安装文件分离开.假设我们这里把

  • Windows系统下安装Tomcat服务器和配置虚拟目录的方法

    安装Tomcat和配置环境变量 安装jdk,这个我就不用说了 安装的时候指定安装路径,我指定的是: D:\Program Files\Java\jdk1.6.0_05 3.解压下载的apache-tomcat-5.5.23.zip,   我指定的是D:\Program Files\apache-tomcat-5.5.26 安装完成后,打开"我的电脑"->"系统属性"->"环境变量"在"用户变量" 新建"C

  • 详解Tomcat服务器绑定多域名和虚拟目录的方法

    tomcat采用默认安装,要想tamcat直接绑定多个域名,这里我们需要修改配置文件:C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\server.xml server.xml 的修改方式如下: (一)多域名绑定 1.如果你要绑定网站,首先是要把tomcat的默认访问端口8080,修改成80 原始: <Connector port="8080" maxHttpHeaderSize="8192&quo

  • 详解node服务器中打开html文件的两种方法

    本文介绍了详解node服务器中打开html文件的两种方法,分享给大家,具体如下: 方法1:利用 Express 托管静态文件,详情查看这里 方法2:使用fs模块提供的readFile方法打开文件,让其以text/html的形式输出. 代码: var express = require('express'); var fs=require("fs"); var app = express(); //方法1:通过express.static访问静态文件,这里访问的是ajax.html //

  • 详解Nginx服务器中配置全站HTTPS安全连接的方法

    HTTPS就等于HTTP加上TLS(SSL),HTTPS协议的目标主要有三个: 数据保密性.保证内容在传输过程中不会被第三方查看到.就像快递员传递包裹时都进行了封装,别人无法知道里面装了什么东西.     数据完整性.及时发现被第三方篡改的传输内容.就像快递员虽然不知道包裹里装了什么东西,但他有可能中途掉包,数据完整性就是指如果被掉包,我们能轻松发现并拒收.     身份校验.保证数据到达用户期望的目的地.就像我们邮寄包裹时,虽然是一个封装好的未掉包的包裹,但必须确定这个包裹不会送错地方. 启用

  • 详解tomcat设置默认路径致使项目url冲突解决方法

    前言 tomcat作为java容器非常出色,但是依然会有一些避之不及的小坑,在此记录一笔. START 问题 部署多个项目后url路径冲突 情景描述 1.webapps下有两个项目 projectA,projectB.两个项目除开管理信息接口,其余都有安全验证机制. 2.projectA由于未做前后端分离,因此静态资源也存在java项目中.在做静态资源中的接口请求时未写包名,比如登录,js代码会拼接服务器ip+端口+当前设置的url(/login),而未在/login前加上/projectA,所

  • 详解tomcat热部署和热加载的方法

    详解tomcat热部署和热加载的方法 我在项目开发过程中,经常要改动Java/JSP 文件,但是又不想从新启动服务器(服务器从新启动花时间),想直接获得(debug)结果.有两种方式热部署 和热加载: 1.热加载:在server.xml -> context 属性中 设置 reloadable="true" <Context docBase="xxx" path="/xxx" reloadable="true"/&

  • 详解负载均衡实现一个域名对应多个IP地址

    详解负载均衡实现一个域名对应多个IP地址 使用负载均衡实现,传统和常规做法,其他方式需要特殊处理.(dns轮询,或者自己做解析) 1.一个域名设定多个dns服务或者服务器进行解析,同一个域名的每个解析都指向不同的ip地址,这样应答快的dns优先进行解析,这样就能保证最快定向到指定的网站空间去.如果空间也存在不同地点的相同内容镜像,那么这种方式最适合,例如sohu全国都有服务器,就是这么干的,除非你指定要访问某个地方的服务器,否则默认转向最快的空间,因为内容是镜像自动同步的,内容上不存在差别,用户

  • 详解tomcat各个端口的作用

    从tomcat配置文件中,我们可以看出,在启动tomcat的时候默认启动了3个端口,分别是8080(8443).8009.8005. 8080(8443)端口 <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 这个应该是我们最熟悉的一个,平常开发测试也经常用,该Connector用于监听

  • 详解Tomcat常用的过滤器

    一.跨域过滤器CorsFilter org.apcache.catalina.filters.CorsFilter是跨域资源共享规范的一个实现,常常用于前后端分离,静态资源与后端分离等情况.它主要在HttpServletResponse中增加Access-Control-*头,同时保护HTTP响应避免拆分,如果请求无效或者禁止访问,则返回403响应码. 1.1.配置示例 <filter> <filter-name>CorsFilter</filter-name> <

  • 详解Linux服务器最多能开放多少个端口

    目录 端口相关的概念: 端口与服务的关系 1:nmap工具检测开放端口 2:netstat 工具检测开放端口 3:lsof 工具检测开放端口 4:ss 工具检测开放端口 5: 使用telnet检测端口是否开放 6:netcat工具检测端口是否开放 关闭端口和开放端口 端口相关的概念: 在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型.物理端口指的是物理存在的端口,如ADSL Modem.集线器.交换机.路由器上用 于连接其他网络设备的接口,如RJ-45端口.SC端口等等.逻辑端口是指

  • Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)

    什么是组件? 组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能.在有些情况下,组件也可以是原生 HTML 元素的形式,以 is 特性扩展. 接下来给大家介绍vuejs单向绑定.双向绑定.列表渲染.响应函数基础知识,具体详情如下所示: (一)单向绑定 <div id="app"> {{ message }} </div> <sc

随机推荐