本文总结一下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虚拟主机配置是将一台服务器划分为多个逻辑上的独立主机,每个主机都拥有自己的域名和IP地址,或者共享同一个IP地址,并且能够提供独立的Web服务。这样的设置使得一台物理服务器可以...
tomcat安装配置详解,tomcat安装配置详解,tomcat安装配置详解
本文将深入探讨Tomcat 5的启动流程、目录结构以及配置详解。 1. **Tomcat 5.0 目录结构** - **bin**: 包含操作系统特定的启动和关闭脚本,如`startup.bat`和`shutdown.bat`,分别用于启动和停止Tomcat服务。 -...
### Tomcat配置虚拟主机详解 #### 一、前言与准备 在Web开发与部署过程中,经常需要在同一个服务器上运行多个不同的Web应用程序。为了更好地管理和区分这些应用程序,可以通过配置虚拟主机来实现这一目标。虚拟...
### Tomcat配置详解 #### 一、Tomcat内存与性能参数设置 在部署Java Web应用时,合理地配置Tomcat的内存及性能参数对于确保应用的稳定性和性能至关重要。默认的Tomcat配置往往不适合生产环境的高并发需求,因此...
MyEclipse Tomcat配置详解
MyEclipse_Tomcat 配置详解
### Tomcat 9 虚拟路径配置详解 在日常的Web开发中,Apache Tomcat作为一款免费开源的Servlet容器,被广泛应用于部署Java Web应用。对于开发者来说,灵活地配置虚拟路径(也称为虚拟主机或上下文路径)是提高项目可...
在IT行业中,Tomcat是一个广泛...在Tomcat 6中,虚拟主机提供了多站点托管的能力,而合理的目录结构则使得配置和管理变得更加清晰。通过深入学习这些知识点,开发者可以更好地利用Tomcat来构建和维护高性能的Web服务。
Tomcat 详解配置 Tomcat 详解配置是指 Tomcat 服务器的配置和架构解析。本文将对 Tomcat 服务器的组成部分、结构图、配置文件等进行详细的介绍。 【Server】:Server 元素代表整个 Catalina Servlet 容器...
tomcat安装及配置教程tomcat安装及配置教程资源合集+Linux下安装Tomcat步骤详解+tomcat配置(免安装及安装版)之间有什么区别tomcat安装及配置教程资源合集+Linux下安装Tomcat步骤详解+tomcat配置(免安装及安装版)之间...
本文将详细介绍在Tomcat中配置基于域名的虚拟主机的步骤和相关注意事项。 首先,我们需要准备运行环境,即安装OpenJDK和Tomcat。安装完这两项基础软件之后,下一步是解压缩Tomcat,并将其移动到一个指定的目录,...
`appBase`属性定义了虚拟主机的应用程序基目录,`unpackWARs`和`autoDeploy`属性则控制了Tomcat如何处理WAR文件。若`unpackWARs`为`true`,WAR文件会被解压后运行;`autoDeploy`为`true`,则Tomcat会自动检测并部署...
Linux 下配置Tomcat 详解各位大佬敬请参考,沟通交流,
在本文中,我们将深入探讨如何在Tomcat中配置和管理虚拟主机,以及实现这一目标的最佳实践。 首先,理解Tomcat的目录结构至关重要。`conf/server.xml`是Tomcat的主要配置文件,其中包含了所有服务器级别的设置,...
tomcat虚拟路径配置,tomcat配置虚拟路径,简短代码,一目了然