tomcat虚拟主机配置

1.不配置Context标签

首先我们需要配置一下host文件,路径为C:\Windows\System32\drivers\etc\hosts,该文件是ip地址和域名的映射文件,在该文件中添加如下代码:

127.0.0.1 www.kevin.com

这样当我们在浏览器中输入http://www.kevin.com时,找到的主机就是本地自己的机器[1]

然后打开server.xml文件,路径为$CATALINA_HOME/conf/server.xml,在该文件中加入如下代码:

<!-- This is the virtual host -->
      <Host name="www.kevin.com"  appBase="web_virtual_host"
            unpackWARs="true" autoDeploy="true">

      </Host>

我们要理解的几个节点和属性的作用:

(1)<Host></Host>节点

即主机的意思,tomcat中支持配置多个虚拟主机

(2)name属性

这是配置多个虚拟主机时的唯一标识,填写的是域名,表示当访问该域名时就会到对应ip的虚拟主机下寻找web应用。

(3)appBase属性

这是虚拟主机的应用程序根目录,该目录中包含有待部署的web应用。路径名可以是绝对路径,或者是相对于$CATALINA_BASE目录的相对路径。如果没有指定,则默认为webapps。

(4)unpackWARs属性

如果为true,则appBase目录下的war包会被自动解压

(5)autoDeploy

如果为true,则tomcat会定期检查appBase和xmlBase目录,并部署上找到的新的web应用或者xml文件。更新web应用或者xml文件会触发web应用的重新加载

我们在appBase目录(即web_virtual_host)下添加一个目录web_test,则该目录会被当一个待部署的web应用,然后在web_test目录下添加一个hello.html文件,内容如下:

<h1>This is a virtual host<h1>

我们还可以在web_test目录下添加一个WEB-INF目录,然后在WEB-INF目录下添加一个web.xml文件(可从webapps的ROOT目录下拷贝一份过来),然后修改代码如下:

<welcome-file-list>
    <welcome-file>hello.html</welcome-file>
  </welcome-file-list>

这样就可以将首页面设置为hello.html

整个目录结构如下:

启动tomcat,在浏览器中输入http://www.kevin.com:8080/web_test/,结果如下:

2.配置Context标签,且docBase中配置的war包[1]路径

首先配置hosts文件。

然后修改server.xml文件,添加代码如下:

<!-- This is the virtual host -->
      <Host name="www.kevin.com"  appBase="web_virtual_host"
            unpackWARs="true" autoDeploy="true">

            <Context path="" docBase="/web_test" />

      </Host>

其中<Context></Context>节点的属性有必要说明一下:

(1)属性docBase

指定web应用程序的文档根目录或者war文件的路径名,你可以指定目录或war文件的绝对路径名,也可以指定相对于Host元素的appBase目录的相对路径名。

这里我们配置的是/ web_test,也就是说web_virtual_host目录下的web_test.war文件

(2)属性path

web应用的上下文路径,通过匹配URI来运行适当的web应用。一个Host中的上下文路径必须是唯一的。如果指定一个上下文路径为空字符串(""),则定义了这个Host的默认web应用(即生成一个ROOT文件夹),会被用来处理所有没有被分配给其他web应用的请求(即如果没有找到相应的web应用,则执行这个默认的web应用,即ROOT)

启动tomcat,可以看到appBase目录(即web_virtual_host)下web_test.war确实被解压了,但被解压成了两个文件夹,如下:

打开web_test和ROOT,会发现里面的文件是一样的,这是为什么呢?

这是因为tomcat的appBase目录里面必须要有一个默认的访问目录ROOT,如果没有,则tomcat会将<Context>中docBase所指向的war文件给解压到ROOT文件夹中。另外,由于appBase目录下文件会被tomcat视为web应用,而我们又将Host中的属性unpackWARs设置为true,因此tomcat会自动将web_test.war解压成web_test。

也就是说web_test被部署了两次,因此,建议将war包放到二级目录,像这样:

$CATALINA_HOME\web_virtual_host\war\web_test.war

此时的server.xml文件就是[2]

<!-- This is the virtual host -->
      <Host name="www.kevin.com"  appBase="web_virtual_host"
            unpackWARs="true" autoDeploy="true">

            <Context path="" docBase="/war/web_test" />

      </Host>

启动tomcat,则appBase目录(即web_virtual_host)下的文件如下:

此时除了放有web_test.war的war文件夹外,就只有ROOT文件夹了,ROOT中的文件就是web_test.war解压之后的文件。且此时在浏览器中输入http://www.kevin.com:8080/,显示的结果如下:

注:

[1]打war包的命令

切换到web应用当前目录,进入到目录,jar -cvf xx.war *,如:

[2]需要注意的是,将war包放到webapps目录下,tomcat会自动解压该war包并部署解压后的web应用,但如果将war包放到其他目录下,则tomcat不会帮你自动解压。因此如果想放到其他目录,只能放置解压后的web应用,然后配置Context(即配置一个虚拟目录),如下:

<!-- This is the virtual host -->
      <Host name="www.kevin.com"  appBase="web_virtual_host"
            unpackWARs="true" autoDeploy="true">

            <Context path="" docBase="/war/web_test" />
            <Context path="/web_test" docBase="/war2/web_test" />

      </Host>

其中docBase表示web应用的路径,path表示web应用名,此时的目录结构如下:

由于我们将autoDeploy设置为true,因此tomcat会自动部署该web应用。我们在浏览器中输入http://www.kevin.com:8080/web_test,结果如下:

1. 在tomcat启动时部署web应用

翻译:

http://tomcat.apache.org/tomcat-7.0-doc/deployer-howto.html#Deployment_on_Tomcat_startup

Deployment on Tomcat startup

If you are not interested in using the Tomcat Manager, or TCD, then you‘ll need to deploy your web applications statically to Tomcat, followed by a Tomcat startup. The location you deploy web applications to for this type of deployment is called the appBase which is specified per Host. You either copy a so-called exploded web application, i.e non-compressed, to this location, or a compressed web application resource .WAR file.

【如果你对使用Tmocat Manager或者TCD部署web应用不感兴趣,那么你可以把解压之后的web应用或者war包放到对应Host的appBase目录下,这样它们就会随着tomcat的启动而被部署到服务器】

The web applications present in the location specified by the Host‘s (default Host is "localhost") appBase attribute (default appBase is "$CATALINA_BASE/webapps") will be deployed on Tomcat startup only if the Host‘s deployOnStartup attribute is "true".

【只有当<Host>中的deployOnStartup属性是true的时候,该Host对应appBase下的web应用才会随着tomcat的启动而被部署到服务器。默认的Host是localhost,默认的appBase路径是$CATALINA_BASE/webapps

注:deployOnStartup默认就是true】

The following deployment sequence will occur on Tomcat startup in that case:

【tomcat启动时,部署的顺序如下:】

Any Context Descriptors will be deployed first.

【Context文件会被首先部署

注:

The locations for Context Descriptors are:

$CATALINA_BASE/conf/[enginename]/[hostname]/[webappname].xml

$CATALINA_BASE/webapps/[webappname]/META-INF/context.xml】

Exploded web applications not referenced by any Context Descriptor will then be deployed. Note that if an exploded web application has an associated .WAR file in the appBase, Tomcat will not detect if the associated .WAR has been updated while Tomcat was stopped and will deploy the exploded web application as is. The exploded web application will not be removed and replaced with the contents of the updated .WAR file.

【接着部署的是在Context文件中没有涉及到的,且已经被解压的web应用。要注意的是,如果解压的web应用在appBase目录下还有一个相对应的.war文件,tomcat运行时并不会检测该war文件在tomcat停止后是否进行过更新,而是依旧显示解压后的web应用,并且解压后的web应用的内容也不会随着war文件的更新而改变】

.WAR files will be deployed

【最后部署的是.war文件】

时间: 2024-08-09 19:52:05

tomcat虚拟主机配置的相关文章

Tomcat虚拟主机配置以及各种优化

1.Tomcat服务器,允许用户在同一台计算机上,配置多个Web站点,在这种情况下,需要为每个Web站点,配置不同的主机名,即配置虚拟主机.现实生活中,为了提高硬件资源的利用率,有很多网站通过配置虚拟主机的方式,实现服务器的共享. 一.配置虚拟主机: 第一步:安装好DNS服务,设置好对应的IP地址和域名解析,用客户机解析是否正确.第二步:创建 kgc 和 accp 项目目录和文件. 文件位置:/usr/local/tomcat/webapps/,分别创建以下两个目录及文件: kgc/index.

Tomcat 虚拟主机配置

一.什么是虚拟主机 一台物理机上搭建多个web站点,每个web站点独立运行,互不干扰,这些站点就是"虚拟主机". 虚拟主机的实现方式: 1.基于主机名的虚拟主机:多个域名解析到同一个IP地址,在WEB服务器里添加多个站点,每个站点设定一个主机名.HTTP协议请求里包含了主机名信息,当WEB服务器收到访问请求时,就可以根据不同的主机名来访问不同的网站. 步骤: a.配置域名与Ip的映射管理(对于本地局域网我们使用在host文件中添加:对于大型网络或者外网网络则需要配置DNS服务器中Ip地

tomcat虚拟主机配置方法!

1.需要了解tomcat主配置文件参数含义,打开Tomcat安装目录下的conf/server.xml文件,找到: <Engine name="Catalina" defaultHost="你的默认启动域名">     一般是localhost 上面这行的意思是通过IP直接访问的是你的默认启动域名所指向的目录. 2.找到server.xml,在</Host>后,</Engine>之前,添加以下内容  <Host name=&

Tomcat虚拟目录配置方法及原理

tomcat 安装好之后,只需要把你的程序包放到$Tomcat_Home$/webapps下就可以直接使用了.这样会使webapps越来越大就需要设置虚拟目录: 1.单个应用设置: 在<Host>和</host>之间加上 <Context path="/site" docBase="d:\site" reloadable="true" debug="0"> </Context> 

server.xml引入子文件配置(tomcat虚拟主机)[转]

在配置tomcat虚拟主机时候,如何每一个虚拟主机写成单独文件,server.xml包含这些子文件? 如以下<OneinStack>中,添加JAVA环境虚拟主机后tomcat配置文件详情: /usr/local/tomcat/conf/server.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE server-xml [ <!ENTITY localhost-vhost S

IIS、apache、tomcat服务器虚拟主机配置

首先我们有一个域名  xxx.com;(注,两个一级域名不相同也可以)有两个二级域名   priject.xxx.com 和 movie.xxx.com有一台主机 ,现在假设访问主机电脑 IIS服务器虚拟主机配置方法1.在IIS中添加网站其中  绑定一栏中的主机名为 priject.xxx.com,在分配好网站的文件路径 2.添加isapi筛选器其中可执行文件位置为php的安装位置3.处理程序映射->添加脚本映射4.最后重启IIS服务器,就可以用域名访问了再添加站点,同样的步骤. tomcat服

Tomcat之虚拟主机配置以及web应用配置

Tomcat之虚拟主机配置以及web应用配置 Tomcat目录结构如下: bin ---- 启动和关闭需要的bat文件所在的目录 conf --- 配置目录 lib ---  tomcat运行时需要的jar包所在的目录 logs --- 运行时产生的日志信息所在的目录 temp --- tomcat运行时产生的临时文件存放的目录,不需要我们管理 webapps --- 开发中最常用的目录,web应用放置到此目录下浏览器可以直接访问 work --- 工作目录,tomcat运行时产生的工作文件存放

16.4 配置Tomcat监听80端口 16.5/16.6/16.7 配置Tomcat虚拟主机 16.8 Tomcat日志

16.4 配置Tomcat监听80端口 16.5/16.6/16.7 配置Tomcat虚拟主机 16.8 Tomcat日志 扩展 邱李的tomcat文档 https://www.linuser.com/forum.php?mod=forumdisplay&fid=37 JAR.WAR包区别 http://blog.csdn.net/lishehe/article/details/41607725 tomcat常见配置汇总 http://blog.sina.com.cn/s/blog_4ab26b

Tomcat监听80端口、配置Tomcat虚拟主机、Tomcat日志

配置Tomcat监听80端口 1.配置Tomcat服务的访问端口 Tomcat默认启动的端口是8080,如果你想修改为80,则需要修改server.xml文件. [[email protected] src]# vim /usr/local/tomcat/conf/server.xml 按如下需求更改: 找到Connector port="8080" protocol="HTTP/1.1"修改为Connector port="80" protoc