需求:1、两个应用(应用1为微信公众平台,应用2为商城)中各根据不同的请求域名得到不同的商家信息,如 应用1: http://www.tzhonggou.com 得到商家淘众购的信息,http://www.99tui.net得到商家99推的信息 应用2:shop.tzhonggou.com 得到淘众购商城信息,shop.99tui.net得到遇维码商城的信息
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/99tui/shop"
JkMount /* tomcat2
</VirtualHost>
<Directory /home/99tui/shop>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.99tui.net
ServerAlias www.99tui.net weixin.hiji.cn
DocumentRoot "/home/99tui/yum"
JkMount /* tomcat1
</VirtualHost>
<Directory /home/99tui/yum>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
重启apache服务,大功告成
转载自:淘众购