Apache+tomcat虚拟主机多实例配置
由于在网上看到了 很多jsp的空间 ,每个用户一个单独的tomcat,可以单独重启,单独管理。由此搜索互联网,得到以下内容,甚为学习!
环境:
apache
假设,我们有这样两个虚拟主机:host1.com
host2.com
<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,CATALINA_HOME就是tomcat的安装目录,CATALINA_BASE也指向同一个目录。其实,一份tomcat是支持多个不同的CATALINA_BASE目录的。
可以启动多份instance,每个instance有一个自己的CATALINA_BASE。
CATALINA_BASE目录的结构如下,
+
+
+
+
+
为了避免冲突,不同的CATALINA_BASE中,在conf/server.xml中,需要修改<server>的port和<Connector
在系统中设定$CATALINA_HOME,在用户下设定$CATALINA_BASE然后每个instance这样启动:
export CATALINA_BASE=$HOME/tomcat_instance sh $CATALINA_HOME/bin/startup.sh -Dcatalina.base
也就是说,服务器上的每个人可以自己独立调度自己的webapp,在一个独立的jvm中运行,重起也不会影响别人.
3,
jk是tomcat和apache之间的连接器,apache和tomcat通过jk来进行通讯,jk支持多个不同的instance转发。
jk的调度是根据workers.properties来的。在自己的engine
在httpd.conf中load
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
/*.jsp=host1 /*.action=host1
在行前面加’-‘表示jkUnmount,这样,假若有
/*=host1 -/*.html=host1
就表示,除html外,apache接收到对所有其他的文件的访问都转发到tomcat的host1
4,tomcat的virtual
【声明】本文 Apache+tomcat虚拟主机多实例配置 为柠之漠然原创文章,转载请注明出自
枫之落叶
并保留本文有效链接:https://blog.shiniv.com/2013/05/multi-user-apache-tomcat/ , 转载请保留本声明!
~