您的位置:首页 > 运维架构 > Tomcat

apache 多个tomcat 多个应用 整合配置(实战结果)

2014-03-27 23:03 351 查看
需求:1、两个应用(应用1为微信公众平台,应用2为商城)中各根据不同的请求域名得到不同的商家信息,如 应用1:www.ivlian.com 得到商家爱微联的信息,www.yuweima.com得到商家遇维码的信息 应用2:shop.ivlian.com 得到爱微联商城信息,shop.yuweima.com得到遇维码商城的信息

2、应用1解析指定的已知域名,应用2为解析未知的泛域名

本来想通过apache的proxypass转发达到这种效果,但是proxypass只是单纯的将请求转发,在应用中得不到真实的请求域名,request.getServerName 永远只能获取到apache中转发后的域名, ----放弃。

百度谷歌一番,发现mod_jk方式更加稳健而且能达到我的需求。

废话不多说,直入主题

1,下载mod_jk.so (主意版本统一,我用的是apache2.2.x )

2,vi /etc/httpd/httpd.conf

#加上jk模块

LoadModule jk_module modules/mod_jk.so

#配置jk的文件workers.properties

JkWorkersFile conf/workers.properties

#日志

JkLogFile logs/mod_jk.log

#日志等级

JkLogLevel warn

3,配置workers.properties

在apache目录下的conf目录新建workers.properties文件

文件内容:

#下面是分发控制器 注意不要放tomcat实例

worker.list=tomcat1,tomcat2

#Tomcat1实例配置 这里要和Tomcat配置文件Service.xml的jvmRoute保持一致

worker.tomcat1.host=localhost

worker.tomcat1.port=8009

worker.tomcat1.type=ajp13

#分发权重 值越大负载越大

worker.tomcat1.lbfactor=1

#Tomcat2实例配置

worker.tomcat2.host=localhost

worker.tomcat2.port=9009

worker.tomcat2.type=ajp13

#分发权重 值越大负载越大

worker.tomcat2.lbfactor=1

4,以下是httpd.conf映射到2个tomcat的配置

NameVirtualHost *:80

<VirtualHost *:80>

ServerName *

DocumentRoot "/home/yuweima/shop"

JkMount /* tomcat2

</VirtualHost>

<Directory /home/yuweima/shop>

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

</Directory>

NameVirtualHost *:80

<VirtualHost *:80>

ServerName www.ivlian.com

ServerAlias www.yuweima.com weixin.hiji.cn

DocumentRoot "/home/yuweima/yum"

JkMount /* tomcat1

</VirtualHost>

<Directory /home/yuweima/yum>

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

</Directory>

重启apache服务,大功告成
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: