记tomcat中虚拟主机的配置

在开发的时候都是直接把war包直接扔到tomcat的webapps目录下,通过localhost:8080/project来访问,但是在上线系统的部署,显然不可能通过www.xxx.com/project这样去访问的。

原来天真的认为域名是可以指向IP:端口/project这样的,今天去客户那部署发现完全不是那么回事,域名只能指向IP,于是马上求助度娘,找到如下方案。

在tomcat的conf/server.xml中,默认有个节点是

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true"></Host>

其中localhost就是本机的域名,在hosts文件中可以看到一句话:localhost name resolution is handled within DNS itself.即localhost指向的是本机,127.0.0.1这个ip。通过修改和添加Host可以增加tomcat的虚拟主机,并绑定域名。

这里实验我就放两个war包,一个是admin.war,对应的域名是admin.xxx.com。一个是sm.war,对应的域名是www.xxx.com

在本机做实验的时候,可以通过修改hosts文件模拟域名访问。这里我就添加三个域名进去

127.0.0.1 www.xxx.com
127.0.0.1 admin.xxx.com

接下来在tomcat中配置虚拟主机

先说明一下两个主机的目录结构

tomcat
├─admin
│  └─war
├─sm
│  └─war

稍后解释为什么目录这么建。

在server.xml中添加两个虚拟主机

<Host name="www.xxx.com"  appBase="sm" unpackWARs="true" autoDeploy="true">
    <Context path="" docBase="./war/sm.war" />
</Host>
<Host name="admin.xxx.com"  appBase="admin" unpackWARs="true" autoDeploy="true">
    <Context path="" docBase="./war/admin.war" />
</Host>

说明一下其中的参数

Host

name 虚拟主机名,一般写域名
appBase 虚拟主机应用的目录
unpackWARs 如果为true,会解压war包,否则不解压,直接运行
autoDeploy 默认为true,表示如果有新的WEB应用放入appBase并且Tomcat在运行的情况下,自动载入应用。

context

path web应用名,
docBase web应用的具体存放路径

path的作用可以看这位朋友写的tomcat原理了解一下:http://blog.csdn.net/xiemk2005/article/details/5988764

配置完成后启动tomcat,就通过域名访问两个app了。

这里有几点要说明的:

  1. 刚刚在建立目录的时候为什么要建立war目录

    在appBase中指定的根目录中如果有war包,tomcat就会加载到内存中去,而子目录里的war包不会。也可以把war包扔到appBase意外的其他目录去,Context的docBase里指定就可以了。

  2. 为什么不把war包都放在webapps里

    由于我的path配置是“”(空字符串),默认会解压到ROOT目录中去,如果都放在webapps里,就都会解压到ROOT

时间: 2024-10-25 01:26:08

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

PHP中虚拟主机的配置

1.开启……/apache/conf/httpd.conf: 1 # Virtual hosts 2 #Include conf/extra/httpd-vhosts.conf 设置成: 1 # Virtual hosts 2 Include conf/extra/httpd-vhosts.conf 2.设置……\apache\conf\extra\httpd-vhosts.conf(可以设置多个主机) 1 <VirtualHost *:80> 2 DocumentRoot "D:/

apache中虚拟主机的配置

一.两种方式:基于域名的虚拟主机和基于IP地址的的虚拟主机 (这里基于前者) 二.作用:实现在同一个web服务器下,同时运行很多个站点(项目) 三.虚拟主机的配置 1.在核心配置文件中加载虚拟主机配置文件 Apache中,默认的提供了一个专门配置虚拟主机的配置文件  conf/extra/httpd-vhosts.conf,但是Apache在启动的时候只会读取核心配置文件conf/httpd.conf.因此,需要开启它:在httpd.conf中,找到Include  conf/extra/htt

Tomcat的虚拟主机的配置

比如:配置一个虚拟主机的名字是www.sina.com 1 改动window系统中的HOST文件[C:\WINDOWS\system32\drivers\etc\hosts] 127.0.0.1     www.sina.com 2 改动tomcat/conf/server.xml <Host name="www.sina.com" appBase="d:\sina"> <Context path="/mail" docBase

tomcat中虚拟主机 、 web应用 、虚拟路径映射相关问题

1.虚拟主机:tomcat中可以配置管理多个网站,外界在访问这些网站时,并不知道这些网站是运行在同一个tomcat中的,感觉起来就像他们各自运行在各自的虚拟出来的主机中一样,所以将一个网站交给tomcat去管理的过程称为为tomcat配置一台虚拟主机. 2.web应用:一个虚拟主机包含着许多web资源,但这些web资源不能直接交给虚拟主机管理,需要按照 功能将web资源按照一定的目录结构组织成web应用再交给虚拟主机管理. 3.虚拟路径映射:将web应用交给虚拟主机管理,为web应用真实路径配置

tomcat的虚拟路径的配置

有很多朋友记tomcat的虚拟路径怎么配置,在此我在这里记录一下,............ 方便其他人查看,同时也记录一下方便以后配置. ... 原文地址:https://www.cnblogs.com/linhuaming/p/8319180.html

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_4ab26bdd0100gwpk.html resin安装 http://fangniuwa.blog.51cto.com/10209

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运行时产生的工作文件存放

Tomcat(2)配置Tomcat的虚拟主机 、日志

配置Tomcat的虚拟主机 一个web服务器下一个ip可以访问多个域名,那就可以配置多个网站 Tomcat的虚拟主机 1.编辑配置文件: vim /usr/local/tomcat/conf/server.xml 其中<Host>和</Host>之间的配置为虚拟主机配置部分,name定义域名, appBase定义应用的目录,Java的应用通常是一个war的压缩包,你只需要将war的压缩包放到appBase目录下面即可.unpackWARs="true",这个是把