今天着实要记上一笔,需要配置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. Spark学习资料

    1. 倾情大奉送--Spark入门实战系列 2. Spark GraphX: http://blog.csdn.net/bluejoe2000/article/details/44308167

  2. Docker背后的容器管理——Libcontainer深度解析

    Libcontainer 是Docker中用于容器管理的包,它基于Go语言实现,通过管理namespaces.cgroups.capabilities以及文件系统来进行容器控制.你可以使用Libcon ...

  3. [转]IOS 中文排序

    转自:http://www.cnblogs.com/syxchina/archive/2012/10/11/2720257.html 1 原因 Ios默认使用utf-8格式编码,所以中文在IOS中默认 ...

  4. IOS 学习笔记(3) 视图UITabbarController

    1.UITabbarViewController标签试图控制器.由于标签页本就起着分类的作用,所以往往呈现的视图内容之间,可以是毫不相关的功能. UITabbarViewController仍然继承自 ...

  5. JVM典型配置

    堆大小设置: JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存 限制.32位系统下,一般限制在1.5G~2G:64为 ...

  6. android学习----overridePendingTransition

    1 Activity的切换动画指的是从一个activity跳转到另外一个activity时的动画. 它包括两个部分:一部分是第一个activity退出时的动画:另外一部分时第二个activity进入时 ...

  7. 17.1.1.9 Introducing Additional Slaves to an Existing Replication Environment 引入额外的Slaves 到一个存在的复制

    17.1.1.9 Introducing Additional Slaves to an Existing Replication Environment 引入额外的Slaves 到一个存在的复制环境 ...

  8. CMake 教程

    CMake是一个跨平台的程序构建工具,比如起自己编写Makefile方便很多. 介绍:http://baike.baidu.com/view/1126160.htm 本文件不介绍CMake的基本语法, ...

  9. asp.net中 服务器控件中onselectedindexchanged 没有反应的解决方案

    最近发现项目中一个BUG就是 DropDownList 中的onselectedindexchanged 没有反应 AutoPostBack="true"和页面中的<%@ P ...

  10. 抄书(B - 二分查找)

    抄书  (二分查找+贪心) 提示:二分查找一般写成非递归形式 时间复杂度:O(logn) 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action? ...