今天着实要记上一笔,需要配置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. .htaccess Rewrite apache重写和配置

    首先: 必须要空间支持 Rewrite 以及对站点目录中有 .htaccess 的文件解析,才有效. 如何让空间支持Rewrite 和 .htaccess 的文件解析呢 往下看 第一步:要找到apac ...

  2. 什么是RAW?

    RAWRAW是一个PHP网站开发系统,使用简单.快捷,核心功能是通过模版组合网站,模版可以自由开发,使开发者不再受传统开发的那种头晕限制,只需要通过填写表单即可完成网站的开发.此外,开发者还可以通过开 ...

  3. 字符串匹配算法1-KMP

    前面介绍过,字符串搜索一般来说有三种方式,前缀搜索,后缀搜索,子串搜索.KMP使用的是前缀搜索. 假设p的偏移是i,也就是窗口的位置是i,匹配到位置j+1时发现了不匹配.现在的问题是向前移动窗口到什么 ...

  4. mybatis一对一关联表查询

    先创建一个表 CREATE TABLE teacher( t_id INT PRIMARY KEY AUTO_INCREMENT, t_name ) ); CREATE TABLE class( c_ ...

  5. Linux 动态库剖析

    进程与 API 动态链接的共享库是 GNU/Linux® 的一个重要方面.该种库允许可执行文件在运行时动态访问外部函数,从而(通过在需要时才会引入函数的方式)减少它们对内存的总体占用.本文研究了创建和 ...

  6. 从51跳新唐cortex-m0学习1——思想转变

    Cortex-M0学习第一帖 序言:这里先说一下,大家在看帖子时候,可能看见字数比较多的,可能只是先大概浏览一下,之后从中挑几段大概瞅瞅,但是我要说,如果你碰到一个适合的帖子,请仔细品读,这是我在论坛 ...

  7. HDU 2673 shǎ崽 OrOrOrOrz

    #include <cstdio> #include <algorithm> using namespace std; int main() { int n; while (s ...

  8. QT renered html for js

    voidMainWindow::on_pushButton_clicked() { QStringurl="http://www.baidu.com"; url="htt ...

  9. 柯里化函数之Javascript

    柯里化函数之Javascript 定义 依据定义来说,柯里化就是将一个接收"多个"參数的函数拆分成一个或者很多个接收"单一"參数的函数.定义看起来是比較抽象的. ...

  10. Effective C++ 条款39

    我从本条款中学到了下面内容: 1.private继承不同于另外两种继承,派生类对象不能隐式转换为基类对象. 例如以下代码: class Bird//鸟 { }; class ostrich:priva ...