`
gyl868
  • 浏览: 171521 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

虚拟主机用户独享tomcat的配置详解

 
阅读更多
本文总结一下tomcat (v5.x)的虚拟主机配置方法,包括对CATALINA_BASE的具体解释,以及如何和apache连接。这个配置的主要目的是,在一台主机上,为每个虚拟主机建立一个独立的tomcat jvm,让用户自己管理;


环境:
apache 2.x + jk 1.2.x + tomcat   采用jk1.2.x而非jk2的原因是,jk2已经放弃维护,并且其中的一些重要功能已经逐步移植到了jk1。参见http://jakarta.apache.org/tomcat/connectors-doc/

1,apache中的虚拟主机配置。
假设,我们有这样两个虚拟主机:

host1.com   根目录 d:/www/host1/   htdoc文档根目录d:/www/host1/www
host2.com   根目录 d:/www/host2/   htdoc文档根目录d:/www/host2/www

以上的根目录,指的是我们为每个虚拟主机准备的根目录,其中www目录下面放webapp,另有一个tomcat-run目录作为CATALINA_BASE(后面详述).

在httpd.conf里面有这样的配置(我们测试apache跑在8082端口)
<VirtualHost *:8082>
     DocumentRoot d:/www/host1/www
     ServerName host1.com
</VirtualHost>

<VirtualHost *:8082>
     DocumentRoot d:/www/host2/www
     ServerName host2.com
</VirtualHost>

此时,在www目录下,假若有html文件,应该就已经可以根据不同的虚拟主机访问不同的html文件了.

2, tomcat的multi instance
我们都知道,默认安装的tomcat,CATALINA_HOME就是tomcat的安装目录,CATALINA_BASE也指向同一个目录。其实,一份tomcat是支持多个不同的CATALINA_BASE目录的。
可以启动多份instance,每个instance有一个自己的CATALINA_BASE。
CATALINA_BASE目录的结构如下,
+ conf
+ logs
+ temp
+ work
+ shared
start.bat

为了避免冲突,不同的CATALINA_BASE中,在conf/server.xml中,需要修改<server>的port和<Connector protocol="AJP/1.3">的port,关闭http的connector。每个instance必须打开两个port,而且不能冲突。需要有个小文件来记录每个instance分配的port。

在系统中设定CATALINA_HOME,然后每个instance这样启动:
set CATALINA_BASE=.
call %CATALINA_HOME%\bin\startup.bat

也就是说,服务器上的每个人可以自己独立调度自己的webapp,在一个独立的jvm中运行,重起也不会影响别人.

3, jk connector 配置
jk是tomcat和apache之间的连接器,apache和tomcat通过jk来进行通讯,jk支持多个不同的instance转发。
jk的调度是根据workers.properties来的。在自己的engine 中配置jvmRoute值,和workers.properties对应;

在httpd.conf中load module:
LoadModule jk_module modules/mod_jk-1.2.10-apache-2.0.53.so   (这个module是自己用源代码make出来的)
JkWorkersFile conf/workers.properties
JkLogFile      logs/mod_jk.log
JkLogLevel     info
JkRequestLogFormat      "%w %V %T %U %q"

workers.properties的定义为:
worker.list=host2,host1

worker.host1.port=8009
worker.host1.host=host1.com
worker.host1.type=ajp13
worker.host1.lbfactor=1
worker.host1.recycle_timeout 120

worker.host2.port=8010
worker.host2.host=host2.com
worker.host2.type=ajp13
worker.host2.lbfactor=1
worker.host2.recycle_timeout 120


然后,在每个virtualhost里面:
<VirtualHost *:8082>
     ServerName host1.com
     ....
     JkMountFile d:/www/host1/tomcat-run/jk-map.properties
</VirtualHost>

这样每个tomcat instance需要拦截哪些文件也可以由自己来控制了。在jk-map.properties里面有如下内容
/*.jsp=host1
/*.action=host1
在行前面加'-'表示jkUnmount,这样,假若有
/*=host1
-/*.html=host1
就表示,除html外,apache接收到对所有其他的文件的访问都转发到tomcat的host1 instance去.

4,tomcat的virtual host,由<host>和<engine>提供

具体的配置,请参见可以下载的附件例子.
http://www.redsaga.com/articles/tomcat-apache-virtualhost-sample.zip
分享到:
评论

相关推荐

    Tomcat虚拟主机配置

    【Tomcat虚拟主机配置】 Tomcat虚拟主机配置是将一台服务器划分为多个逻辑上的独立主机,每个主机都拥有自己的域名和IP地址,或者共享同一个IP地址,并且能够提供独立的Web服务。这样的设置使得一台物理服务器可以...

    tomcat安装配置详解

    tomcat安装配置详解,tomcat安装配置详解,tomcat安装配置详解

    tomcat5配置详解

    本文将深入探讨Tomcat 5的启动流程、目录结构以及配置详解。 1. **Tomcat 5.0 目录结构** - **bin**: 包含操作系统特定的启动和关闭脚本,如`startup.bat`和`shutdown.bat`,分别用于启动和停止Tomcat服务。 -...

    tomcat配置虚拟主机

    ### Tomcat配置虚拟主机详解 #### 一、前言与准备 在Web开发与部署过程中,经常需要在同一个服务器上运行多个不同的Web应用程序。为了更好地管理和区分这些应用程序,可以通过配置虚拟主机来实现这一目标。虚拟...

    Tomcat配置详解

    ### Tomcat配置详解 #### 一、Tomcat内存与性能参数设置 在部署Java Web应用时,合理地配置Tomcat的内存及性能参数对于确保应用的稳定性和性能至关重要。默认的Tomcat配置往往不适合生产环境的高并发需求,因此...

    MyEclipse Tomcat配置详解

    MyEclipse Tomcat配置详解

    MyEclipse_Tomcat配置详解

    MyEclipse_Tomcat 配置详解

    Tomcat 9 虚拟路径配置

    ### Tomcat 9 虚拟路径配置详解 在日常的Web开发中,Apache Tomcat作为一款免费开源的Servlet容器,被广泛应用于部署Java Web应用。对于开发者来说,灵活地配置虚拟路径(也称为虚拟主机或上下文路径)是提高项目可...

    tomcat虚拟主机+目录

    在IT行业中,Tomcat是一个广泛...在Tomcat 6中,虚拟主机提供了多站点托管的能力,而合理的目录结构则使得配置和管理变得更加清晰。通过深入学习这些知识点,开发者可以更好地利用Tomcat来构建和维护高性能的Web服务。

    Tomcat详解配置

    Tomcat 详解配置 Tomcat 详解配置是指 Tomcat 服务器的配置和架构解析。本文将对 Tomcat 服务器的组成部分、结构图、配置文件等进行详细的介绍。 【Server】:Server 元素代表整个 Catalina Servlet 容器...

    tomcat安装及配置教程资源合集+Linux下安装Tomcat步骤详解+tomcat配置(免安装及安装版)之间有什么区别

    tomcat安装及配置教程tomcat安装及配置教程资源合集+Linux下安装Tomcat步骤详解+tomcat配置(免安装及安装版)之间有什么区别tomcat安装及配置教程资源合集+Linux下安装Tomcat步骤详解+tomcat配置(免安装及安装版)之间...

    Tomcat基于域名的虚拟主机.doc

    本文将详细介绍在Tomcat中配置基于域名的虚拟主机的步骤和相关注意事项。 首先,我们需要准备运行环境,即安装OpenJDK和Tomcat。安装完这两项基础软件之后,下一步是解压缩Tomcat,并将其移动到一个指定的目录,...

    Tomcat 配置详解

    `appBase`属性定义了虚拟主机的应用程序基目录,`unpackWARs`和`autoDeploy`属性则控制了Tomcat如何处理WAR文件。若`unpackWARs`为`true`,WAR文件会被解压后运行;`autoDeploy`为`true`,则Tomcat会自动检测并部署...

    linux tomcat 配置详解

    Linux 下配置Tomcat 详解各位大佬敬请参考,沟通交流,

    Tomcat建立虚拟主机最佳实践

    在本文中,我们将深入探讨如何在Tomcat中配置和管理虚拟主机,以及实现这一目标的最佳实践。 首先,理解Tomcat的目录结构至关重要。`conf/server.xml`是Tomcat的主要配置文件,其中包含了所有服务器级别的设置,...

    tomcat配置虚拟路径

    tomcat虚拟路径配置,tomcat配置虚拟路径,简短代码,一目了然

Global site tag (gtag.js) - Google Analytics