你的Tomcat是几个呢? 是一个虚拟主机一个tomcat,还是公用一个tomcat呢? 思路是:Apache 在全局加载 mod_jk.so 以及 jk.properties 配置,然后在虚拟主机中配置 urimapping.properties
我的Tomcat现在是一个,但我想着再加一个的。 Apache和Tomcat的整合我是按照你在IBM的网站上面的方法配置的,可以运行,但是里面有个警告。 我现在想怎么去配置一个服务器怎么配置多个网站,还有配置二级域名的事情! 谢谢各位的帮忙,再次十分感谢! ######其实很简单.Apache 整合tomcat可以通过 JK, 这是往常的做法。但现在也可以通过 Apache 的反向的代理功能实现。 不过我想LZ现在应该是需要 Apache + JK + Tomcat 这种配置了。 先问问LZ说里边报的警告是什么? 首先说说是 Apache 的配置 httpd.conf LZ 需要的是配置虚拟主机, 即 Apache + JK +( tomcat1 / tomcat 2) 这么首先配的是 httpd.conf 的虚拟主机配置 如下:httpd.conf 找到 #NameVirtualHost 去掉前边的 # 然后配置如下 NameVirtualHost *:80 ######################################### <VirtualHost *:80> ServerAdmin xxx@xxx.com DocumentRoot "/opt/webroot" ServerName localhost #ErrorLog logs/error.log JkMountFile conf/localhost.properties </VirtualHost> ######################################### <VirtualHost *:80> ServerAdmin xxx@xxx.com DocumentRoot "/opt/web1" ServerAlias
www.web1.com #ErrorLog logs/error.log JkMountFile conf/web1.properties #加载mod_jk配置路径 </VirtualHost> ######################################### <VirtualHost *:80> ServerAdmin xxx@xxx.com DocumentRoot "/opt/web2" ServerAlias
www.web2.com #ErrorLog logs/error.log JkMountFile conf/web2.properties #加载mod_jk配置路径 </VirtualHost> ################################## 以上配置的前提是你已经顺利编译安装好 mod_jk 模块 然后修改 mod_jk 的全局配置 httpd-jk.conf vim conf/extra/httpd-jk.conf LoadModule jk_module modules/mod_jk.so JkWorkersFile conf/workers.properties #指定各个配置文件路径 JkMountFile conf/urimap.properties JkLogFile logs/mod_jk.log JkLogLevel warn <Location /jkstatus> #管理页面 JkMount status </Location> :wq 保存退出 ######################### 然后创建各自的 web1.properties ,web2.properties 配置文件,目录路径跟 httpd.conf 相同 # vim conf/web1.properties /*=tomcat_web1 !/*.gif=web1 !/*.jpg=web1 !/*.png=web1 !/*.html=web1 !/*.htm=web1 #第一行的意思是把请求转往代号为 tomcat_web1(命名可与虚拟主机无关) 的 tomcat 端, 一会我们需要在 workers.properties 配置中设置。 #而剩下的是不需要转往 tomcat 的请求类型, 因为 tomcat 处理静态文件性能很差, 所以这里的规则就是过滤,把静态文件处理留给apache。 :wq 保存退出 web2.properties 的配置方式跟 web1 相同。 ################################# 编辑 jk 全局配置 # Vim workers.properties worker.list=tomcat_web1,tomcat_web2,status #告诉 jk 你需要他统管的 tomcat 名(代号) 最后一个"status" 是jk 的管理页面 worker.status.type=status #为 status 路径设置属性为管理页面。 ############# 先配置好每个 tomcat 与 JK 的链接参数 ################ worker.s1.type=ajp13 #协议类型 worker.s1.host=127.0.0.1 #tomcat所在服务器的ip,如果是本机就是 127.0.0.1 worker.s1.port=8108 #tomcat的端口 worker.s1.lbfactor=1 #如果是均衡负载状态,多个tomcat的负载比例。 worker.s2.type=ajp13 worker.s2.host=127.0.0.1 worker.s2.port=8109 worker.s2.lbfactor=1 ############## 再配置 tomcat 与 jk 的调度 ############### worker.tomcat_web1.type=lb #lb 的意思是可集成多个tomcat均衡负载,但只有一个tomcat 的时候也可以使用。 worker.tomcat_web1.balance_workers=s1 #开头的"worker.tomcat_web1"对应web1.properties的配置。这里配置群组的tomcat成员。"s1" 是成员代号。对应上边tomcat的链接参数。 worker.tomcat_web1.sticky_session=True #是否打开session 粘贴。 worker.tomcat_web2.type=lb #意义同上 worker.tomcat_web2.balance_workers=s2 worker.tomcat_web2.sticky_session=True :wq 配置完成后保存退出 ########################### 配置路径名: 编辑或创建 urimap.properties # vim urimap.properties /*=lb # 把请求发往 lb /jkstatus=status # 把JK管理页面的连接定为
http://www.web1.com/jkstatus 或者
http://www.web2.com/jkstatus :wq 保存退出 你也可以修改或创建相同目录里localhost.properties 把 管理页面链接加到里边。这么链接地址就为
http://localhost/jkstatus ##################### 然后就剩下 tomcat 了 修改端口号对应tomcat 组这个不用说了吧? 最重要说的是既然在各自的 web1.properties 跟 workers.properties中配置了 tomcat 名, 这么除了告诉jk tomcat的IP地址以及端口号, 还必须告诉 tomcat 他的名字。 Engine jvmRoute="tomcat_web1" 分别在 tomcat1 跟 tomcat2 的 server.xml 中找到相应的配置. 改上相应的参数! 到此,即完成整个 Apache + JK + tomcat 的配置过程。 ######按照这配置后,为什么打开http://www.xxx.com/jkstatus 为404页面呢?######
十分感谢,二级域名,你会配置吧?麻烦你了! ######这里已经有二级域名了啊~ 把配置都给你写出来了,还想要什么啊 :)######
抱歉啊,刚才有些忙,大概了看了些,十分抱歉了!再次感谢你的帮助,谢谢了!
######呵..LZ 如果你觉得头晕..你不妨考虑一下 Apache 的反向代理 httpd proxy 功能到 tomcat 还好.比 mod_jk 简单多了。 不过学会一种知识对你来说更加有用。######嗯,谢谢你们了!十分感谢!