Apache + Tomcat 配置多个应用
今天在网上发现一篇帖子 ,Apache + Tomcat 配置多个应用
转:http://www.blogjava.net/sealyu/archive/2008/08/25/224326.html
需求概况:
有2个服务:www.test.com, bbs.test.com。分别对应2个tomcat下的2个web应用。由apache httpd作为互联网接入服务器,在80端口接收对这2个服务的请求。apache httpd再将这2个请求分别对应到不同的后端web服务器(Tomcat)处理。
暂时自己还没安装成功 ,不过折腾了一天,特别是在找 mod_proxy_**.so 文件的时候
后来发现这些so文件可以自己编译生成的 ,所以和大家分享下
进入moudls目录
../apache/bin/apxs -c -i -a mod_proxy_http.c --可以生成 mod_proxy_http.so
其他的类似 ,../apache/bin/apxs -c -i -a mod_proxy_**.c
但是生成 mod_proxy.so 的时候好像有点 不一样
../apache/bin/apxs -c -i -a mod_proxy.c proxy_util.c
下载 http://download.csdn.net/detail/bdk82924/5019862
最近在服务器上需要配置多个应用,使用apache+tomcat搭配,采用mod_jk进行分配。
刚开始在同一个tomcat中配置了多个应用,后来感觉效果不好,改为每个tomcat对应一个应用。搜索资料如下:
apache2.2与tomcat集成(可以多个tomcat)
1. 安装apache2.2 参见:http://ttitfly.javaeye.com/admin/show/127337
3.配置域名映射到本机即127.0.0.1,同时配置service域名
再在$TOMCAT_HOME/conf/Catalina下建立一个目录:www.service.test.com
然后在www.service.test.com目录下建立一个ROOT.xml,内容为:
docBase指向具体的项目路径
同理第二个tomcat(端口8088)也是一样的做法:
编辑$TOMCAT_HOME/conf/server.xml
添加一个Host:
然后在$TOMCAT_HOME/conf/Catalina下建立一个目录:bbs.service.test.com
再在bbs.service.test.com目录下建立一个ROOT.xml,内容为:
<Context docBase="/home/mahaibo/app/bbs"
privileged="true" antiResourceLocking="false" antiJARLocking="false">
</Context>
<Context docBase="/home/mahaibo/app/bbs"
privileged="true" antiResourceLocking="false" antiJARLocking="false">
</Context>
5. 分别启动tomcat,可以通过http://www.service.test.com:8080和http://bbs.service.test.com:8088访问
6. 配置apache httpd.conf文件。
找到apach/conf/httpd.conf文件,确认下面这些文字行前面没有"#"注释号:
改为
XXXX 在这里表示不同的端口:我的两个 tomcat 分别使用 8035 , 8045
注意:这里之所以要配置不同的 tomcat 关闭口,只是因为我们使用了多个 tomcat ,其实用一个 server 多个实例也可以。
2.2.2. 配置 service
我们需要对不同的 tomcat 的 service 取不同的名字,在 server.xml 中找到:
改为: <Connector port="XXXX" protocol="AJP/1.3" redirectPort="8443" />
两个 Service 的 ajp/1.3 的端口分别为: 8019 , 8029
修改 http 的端口:
找到:
改为:
两个 Service 的 ajp/1.3 的端口分别为: 8060 , 8070
2.2.4. 配置 Engine
Engine 主要是配置 jvmRoute 属性,找到:
<Engine name="Catalina" defaultHost="localhost">
改为:
<Engine jvmRoute="XXXX" name="Catalina" defaultHost="localhost">
两个实例分别为: tomcat6 和 tomcat5.
2.2.5. 配置公用性 Context
如果有 Context 是多个系统公用的,比如图片等的存放地,可以做个配置:
在 Host 中增加:
<Context path="/image" docBase="D:"webRoot"image" debug="0" reloadable="false" crossContext="true">
</Context>
2.2.6. 屏蔽文件列表
打开 tomcat 目录下的 conf/web.xml ,
找到:
这里的 "E:/MyWebsite" 指的是你的 web 程序的根路径,视具体应用而定。
3.3.3. 配置 serverName
找到 serverName 这个段,将其配置为你的 ServerName
如果没有配置为域名,配为 IP 也可以,此处还不是很清楚,多虚拟主机的情况的配置。
3.3.4. 配置虚拟主机
ProxyPass /*.jsp ajp://localhost:8019/ ProxyPassReverse /*.jsp ajp://localhost:8019/
这样的配置是不能通过的。