今天着实要记上一笔,需要配置tomcat虚拟目录的问题

一 首先看两个名词

  appBase -- 顾名思义 就是你app所在的目录,目录下面的子目录将自动被部署为应用;war被解压并部署

  docBase -- 指的是你的app的根目录

还是来个例子比较好理解

  我有个app,例如叫wechat。我将其放在/home/workspace/下面 这样的话

  appBase == /home/workspace;

  docBase == /home/workspace/wechat

其实上面的二者可以没有任何的关联

 <Host name="www.volshell.com" appBase="/home/workspace"
unpackWARs="false" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="wechat" debug="" reloadable="true" crossContext="true"/>
</Host>

  上面指定了我们app所在的目录以及context的目录名称。在这里context就是一个app,关于这个问题可以参见鄙人另外一篇笔记 http://www.cnblogs.com/plxx/p/5281532.html

2.配置方法

   在这开始之前最好将该文件备份一份,以免……

   首先修改端口号,在修改的时候注意其中的协议选择Http/1.1对应的端口,默认为8080,修改为80.如下: 

<Connector port="" protocol="HTTP/1.1" connectionTimeout="" redirectPort="" />

   接下来就是添加虚拟主机的配置

      <Host name="localhost"  appBase="webapps"
unpackWARs="true" autoDeploy="true"> <!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
--> <!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b" /> </Host>
    <!--自定义配置虚拟主机-->
<Host name="www.volshell.com" appBase="/home/volshell/workspace">
<Context path="" docBase="wechat" debug="" reloadable="true" crossContext="true"/>
</Host>

  完成上述配置之后,在/etc/hosts文件中添加

    127.0.0.1   www.volshell.com

  这样依赖就配置完成了,但是如想让默认的主机为自定义的主机那么在Engine节点设置defaultHost为自定义主机的name即可。此外还可以为你自定的虚拟主机配置一个或多个别名在host下面添加节点<alias>别名</alias>

  

  tomcat官网比较推荐的一种web部署方式

  在$CATALINA_HOME/conf/Catalina/localhost 下面添加一个配置文件(*.xml) 文件名为你项目名  

<Context docBase="/home/volshell/workspace/wechat" debug="" reloadable="true" crossContext="true" privileged="true" 
      antiResourceLocking="false" antiJARLocking="false"/>

  这种方式相对于直接将war包发布到webapps下面 & 上面在host添加context的配置方式的优点是无需重启机器。可以实现动态的部署。

附件一

server:
   port 指定一个端口,这个端口负责监听关闭tomcat的请求
   shutdown 指定向端口发送的命令字符串
 service:
   name 指定service的名字
 Connector (表示客户端和service之间的连接):
   port 指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求
   minProcessors 服务器启动时创建的处理请求的线程数
   maxProcessors 最大可以创建的处理请求的线程数
   enableLookups 如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址
   redirectPort 指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号
   acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
   connectionTimeout 指定超时的时间数(以毫秒为单位)
 Engine (表示指定service中的请求处理机,接收和处理来自Connector的请求):
   defaultHost 指定缺省的处理请求的主机名,它至少与其中的一个host元素的
  name属性值是一样的
 Context (表示一个web应用程序,通常为WAR文件,关于WAR的具体信息见servlet规范):
   docBase 应用程序的路径或者是WAR文件存放的路径
   path 表示此web应用程序的url的前缀,这样请求的url为http://localhost:8080/path/**** 
   reloadable 这个属性非常重要,如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,可以在不重起tomcat的情况下改变应用程序
Host (表示一个虚拟主机):
   name 指定主机名
   appBase 应用程序基本目录,即存放应用程序的目录
   unpackWARs 如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR文件中运行应用程序
 Logger (表示日志,调试和错误信息):
   className 指定logger使用的类名,此类必须实现
  org.apache.catalina.Logger 接口
   prefix 指定log文件的前缀
   suffix 指定log文件的后缀
   timestamp 如果为true,则log文件名中要加入时间,如下例:localhost_log.2001-10-04.txt
 Realm (表示存放用户名,密码及role的数据库):
   className 指定Realm使用的类名,此类必须实现org.apache.catalina.Realm接口
 Valve (功能与Logger差不多,其prefix和suffix属性解释和Logger 中的一样):
   className 指定Valve使用的类名,如用org.apache.catalina.valves.AccessLogValve类可以记录应用程序的访问信息directory 指定log文件存放的位置
   pattern 有两个值,common方式记录远程主机名或ip地址,用户名,日期,第一行请求的字符串,HTTP响应代码,发送的字节数。combined方式比common方式记录的值更多

tomcat虚拟主机虚拟目录配置的更多相关文章

  1. 虚拟主机(多站点配置)的实现--centos上的实现

    Apache中配置多主机多站点,可以通过两种方式实现 将同一个域名的不同端口映射到不同的站点(虚拟主机) 将同一个端口映射成不同的域名,不同的域名映射到不同的站点 两种方法可以同时存在,局域网通过   ...

  2. Apache之——多虚拟主机多站点配置的两种实现方案

    Apache中配置多主机多站点,可以通过两种方式实现: 将同一个域名的不同端口映射到不同的虚拟主机,不同端口映射到不同的站点: 将同一个端口映射成不同的域名,不同的域名映射到不同的站点. 我们只需要修 ...

  3. 基于虚拟主机的HAProxy配置实战

    本实例是如上图所示 主要实现的功能如下: 当客户访问www.tb.com/tb.com的时候HAProxy将网站提交到电商服务器集群当访问bbs.tb.com的时候,将访问请求调度到论坛集群,实现论坛 ...

  4. apache php配置 虚拟目录 和 虚拟主机 多域名配置 原理解析

    虚拟目录配置 就是说,我们放项目放在D盘,F盘,而不是默认的www文件夹下也可以访问.比如这里,我在 D:/PHP/work 放入的项目文件. 在httpd.conf加入: (位置一般是在 </ ...

  5. ESXi5 中克隆Linux虚拟主机的网络配置

    虚拟化技术果然非常方便,尤其是windows主机,克隆后在网络管理中改一下IP即可. 但对于Linux来说就有点麻烦,只修改IP还不行,还有MAC地址,网卡指定等,这个规程对应新手来说没有大半天搞不定 ...

  6. linux上nginx上配置虚拟主机的相关配置

    1.配置主配置: nginx/conf/nginx.conf 2.虚拟主机配置:nginx/conf/extra/learn.weixin.com.conf 配置完后,重启服务器!

  7. http虚拟主机的简单配置训练

    http的虚拟主机 对于某些web访问站点而言,每天的访问量很少,因此真正的放一台服务器去进行web站点是很 浪费资源的,因此我们选择了虚拟主机 web处理模块的分类(MPM) 1.perfork 一 ...

  8. GoDaddy网站程序根目录 网站文件上传到虚拟主机哪个目录

    用的linux虚拟主机,网站根目录为public_html,(window主机的目录为httpdocs)我们需要把本地做好的网站上传到此目录下 cPanel控制面板 - 文件管理器 - public_ ...

  9. tomcat生产环境JDK部署及虚拟主机等常用配置详解

    jdk和tomcat环境部署: 1.删除系统自带的openjdk # java -version java version "1.7.0_45" OpenJDK Runtime E ...

随机推荐

  1. IList, ICollection ,IEnumerable AND IEnumerator in C#

    IList, ICollection ,IEnumerable 很显然,这些都是集合接口的定义,先看看定义: // 摘要: // 表示可按照索引单独访问的对象的非泛型集合. [ComVisible(t ...

  2. freebsd

    #cd /usr/ports/devel/binutils && make install

  3. shouldOverrideUrlLoading相关说明

    给WebView加一个事件监听对象(WebViewClient)并重写其中的一些方法:shouldOverrideUrlLoading:对网页中超链接按钮的响应.当按下某个连接时WebViewClie ...

  4. 笔试题:金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出

    收集这道题目原因是以前做过,但是实现的很麻烦,这次看到别人写的感觉简单易懂. 从一个pdf看到,出处就不贴了 = .= public class RenMingBi { private static ...

  5. 【Java线程】Lock、Condition

    http://www.infoq.com/cn/articles/java-memory-model-5  深入理解Java内存模型(五)——锁 http://www.ibm.com/develope ...

  6. 全栈JavaScript之路(七)学习 Comment 类型节点.

    凝视 在DOM中,用 Comment 类型 节点表示, 构造器函数为:  function Comment(){[native code]}. comment 节点的特征: nodeType:8 no ...

  7. EJB3.0开发环境的搭建

    EJB Container的介绍SUN公司正式推出了EJB的规范之后,在众多的公司和开发者中引起了非常大的反响.标志着用Java开发企业级应用系统将变的非常easy.很多公司都已经推出了或正打算EJB ...

  8. c#与.NET的区别

    C#与.NET的关系 C# 可以通过.NET平台来编写 部署 运行.NET应用程序VB.NET.......NET语言 C#是专门为.NET平台而生的(面向对象) .NET平台的重要组成:1.FCL- ...

  9. SqlServer之like、charindex、patindex(转载)

    SqlServer之like.charindex.patindex   1.环境介绍 测试环境 SQL2005 测试数据 200W条   2.环境准备 2.1建表 CREATE TABLE [dbo] ...

  10. 在 Android 中 Intent 的概念及应用

    一.显式Intent: startActivity(new Intent(MainActivity.this, 类名.class));   二.隐式Intent: 1.在AndroidManiFest ...