今天着实要记上一笔,需要配置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. Android 开发笔记 “Sqlite数据库删除”

    1.代码方式 Context.deleteDatabase(String databaseName);//删除某一数据库 2.设置里面 进入应用程序 ,然后清除数据就ok了

  2. CRM中直接创建SAP订单的实施方案记录

    后台生成订单按钮JS do_alert('正在生成SAP订单,暂停所有操作,同时请不要关闭本窗口!'); var hefid = clientData.urlArgs.entityId; var ur ...

  3. windows如何安装scrapy

    第一次写博客,有不好的地方请理解! 在linux下安装scrapy几行命令就搞定了,windows就是事多! 话不多说,我们直接进入主题: 1. 下载python.地址 https://www.pyt ...

  4. linux所有信息查询网址

  5. 手动修改VisualStudio IISExpress的配置

    <VisualStudio> <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}"> ...

  6. Ibatis入门基本语法(转) good

    Ibatis入门基本语法 一个项目中在写ibatis中的sql语句时,where user_id in (#user_id_list# ), 运行时总是不行,后来上网查了查,才知道这里不该用#,而应该 ...

  7. UBER司机奖励政策

    高峰时段: 早高峰:早6:30-8:30点 晚高峰:晚4:00-7:00点 *周六日只有晚高峰 其他时间均为平峰时段 滴滴快车单单2.5倍,注册地址:http://www.udache.com/如何注 ...

  8. UVA - 12230 Crossing Rivers (期望)

    Description You live in a village but work in another village. You decided to follow the straight pa ...

  9. 编写可维护的JavaScript—语句和表达式&变量、函数和运算符

    语句和表达式 所有的块语句都应当使用花括号.包括: if for while do…while… try…catch…finally //不好的写法 if (condition) doSomethin ...

  10. Tableau Server 8.0 升级到 8.3 过程记录

    一.使用账号(管理员权限),安装文件复制到服务器 二.检查维护状态 如果维护状态过期,更新到新版本会变成未授权. 先进Manage Product Keys刷新一下维护日期(其实不刷新也无所谓.到时候 ...