整体环境
RedHat AS3
WebLogic Server 8.1 SP2 (/home/bea)
Apache 2.0.46 (/usr/local/apache2)
配置目标
实现两个域名www.test1.com和www.test2.com能够在一台服务器上同时运行jsp及servlet应用
实现www.test1.com及其二级域名(如blog.test1.com)在同一台服务器上运行jsp及servlet应用
注:www.test1.com目录在/home/test1
www.test2.com目录在/home/test2
blog.test.com目录为/home/test1/blog(blog调用的图片资源目录位于/home/test1/resource)
www.test1.com、www.test2.com和blog.test1.com都被解析到同一个IP地址上
首先将www.test1.com在weblogic里面配置成默认的web应用test1
现在输入www.test1.com:7001应该能访问到test1
然后配置Weblogic的虚拟主机
在console的左边导航栏,中选择mydomain ->Services-> VirtualHosts,然后在右面点击Configure a new Virtual Host...,在Configuration的General选项卡下面,填写:
Name: test2
Virtual Host Names: www.test2.com
然后点击"apply",然后到Target and Deploy 选项卡,选中myserver,点击"apply",这样名称为test1的虚拟主机就搭建成功了。
同样再建立一个虚拟主机
Name: blog
Virtual Host Names: blog.test1.com
接着部署两个应用,分别为: test2与blog
把test2部署到虚拟主机 www.test2.com
把blog部署到虚拟主机 blog.test1.com
重新起动weblogic服务器
现在可以访问
http://www.test2.com:7001/
和
http://blog.test1.com:7001/
访问到的应该是 www.test1.com下面的目录
不急,更改config.xml文件
打开当前weblogic server的config.xml文件,找到VirtualHost配置部分,
把关于虚拟主机的部分修改为以下与上面相应的代码
< VirtualHost DefaultWebApp="test2" Name="test2" Targets="myserver" VirtualHostNames="www.test2.com"/ >
< VirtualHost DefaultWebApp="blog" Name="blog" Targets="myserver" VirtualHostNames="blog.test1.com"/ >
即在每个虚拟主机配置里面加入一句 DefaultWebApp="(这里填相应的web应用的名字)"
更改配置文件后,重新起动weblogic服务器。
访问
http://www.test2.com:7001/
和
http://blog.test1.com:7001/
现在应该是分别看到test2和blog目录下面的默认网页了
使apache与weblogic结合
把
/home/bea/weblogic81/server/lib/linux/i686
目录下的mod_wl_20.so文件拷贝到
/usr/local/apache2/modules
目录下
打开apache的httpd.conf文件添加以下代码:
LoadModule weblogic_module modules/mod_wl_20.so
# WEBLOGIC MODULE
< IfModule mod_weblogic.c >
WebLogicHost 127.0.0.1
WebLogicPort 7001
MatchExpression *.jsp (这里可以再加上自己调用的一些servlet,例如:MatchExpression /Test*,其中Test为所有servlet的前缀,当然这里也涉及到程序的规范化)
< /IfModule >
为了使apache支持SSI,还要打开一下两个模块
LoadModule include_module modules/mod_include.so
LoadModule cgi_module modules/mod_cgi.so
然后再打开下面两句
