apache2.2 tomcat5.0 整合步骤(支持集群负载均衡)
geoserver 1.4.0测试工作完成,发现的问题已经解决,正好有一新项目进入开发阶段,决定使用sun jdk1.4.2+apache2.2.4+tomcat5.0.28+geoserver 1.4.0+mapbuilder 1.0.1组合.
我们使用apache2.2 和tomcat5.0 整合搭建了一套运行平台,网上搜索了很多apache2.2 和tomcat5.0整合的文章,由于版本等原因,搞了2天才弄出来。
本文可以为需要做apache2.2 和tomcat5.0 整合的朋友做参考。
经过测试该平台的性能比济南项目(IIS6+Resin3.0.19)提升50-100%。
使用软件
Sun Java2SDK 1.4.2 (j2sdk-1_4_2_11-windows-i586-p.exe)
Sun JAI 1.1.2 SDK (jai-1_1_2_01-lib-windows-i586-jdk.exe) geoserver需要
Sun ImageIO 1.0 SDK (jai_imageio-1_0_01-lib-windows-i586-jdk.exe) geoserver需要
Apache 2.2 (apache_2.2.4-win32-x86-no_ssl.msi) 注意:必须使用2.2.3及以上版本
Tomcat 5.0 (jakarta-tomcat-5.0.28.exe)
mod-jk 1.2 (mod_jk-apache-2.2.3.so) 注意:必须匹配apache版本
1、安装Java2SDK-1_4_2,过程省略。
2、安装Apache 2.2,过程省略。使用端口80,将mapbuilder整个目录(地图客户端支持包)复制到 Apache安装目录/htdocs下。
3、安装Tomcat 5.0,过程省略。使用端口8081,将geoserver整个目录(地图引擎)和cqcbd整个目录(应用系统)复制到 Tomcat安装目录/webapps下。将cqcbd.xml文件复制到 Tomcat安装目录/conf/Catalina/localhost下,cqcbd.xml文件包含数据库连接池的ResourceLink信息。
4、将mod_jk-apache-2.2.3.so复制到 Apache安装目录/modules下。
5、修改 Apache安装目录/conf/httpd.conf
添加mapbuilder虚拟目录:(mapbuilder不使用tomcat解析。使用tomcat时,xsl中输出的汉字会显示为?号,原因不明。)
Alias /mapbuilder "D:/Apache2.2/htdocs/mapbuilder"
<Directory "D:/Apache2.2/htdocs/mapbuilder">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
添加apache_tomcat连接器mod-jk配置文件路径:
# Tomcat mod-jk
Include conf/mod_jk.conf
6、在Apache安装目录/conf/下新建文件mod_jk.conf,内容如下:
# Load mod_jk module. Specify the filename
# of the mod_jk lib you’ve downloaded and
# installed in the previous section
#加载mod_jk模块
LoadModule jk_module modules/mod_jk-apache-2.2.3.so
# Where to find workers.properties
JkWorkersFile conf/workers2.properties
# Where to put jk logs
JkLogFile logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
# 请求分发配置,可以配置多项
JkMount /cqcbd/* loadbalancer
#把/cqcbd/目录下的所有请求转发给集群负载均衡器(最终到达tomcat)
#注意,不要把mapbuilder目录下的请求转发给Tomcat
#关掉主机Lookup,提高系统性能。
HostnameLookups Off
7、在Apache安装目录/conf/下新建文件workers2.properties,内容如下:
worker.list=loadbalancer
# Define the first node...
worker.server1.port=8009
worker.server1.host=192.98.151.7 #tomcat服务器ip地址
worker.server1.type=ajp13
worker.server1.lbfactor=1
worker.server1.local_worker=1
worker.server1.cachesize=1000
worker.server1.cache_timeout=600
worker.server1.socket_keepalive=1
worker.server1.socket_timeout=0
worker.server1.reclycle_timeout=300
worker.server1.retries=3
# Define the second node...
# Now we define the load-balancing behaviour
worker.loadbalancer.type=lb
worker.retries=3
worker.loadbalancer.balance_workers=server1
worker.loadbalancer.sticky_session=true
worker.loadbalancer.sticky_session_force=true
8、Tomcat不需要特别配制,确认 Tomcat安装目录/conf下的server.xml文件包含:
<Connector port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443">
</Connector>
整合完成!测试系统:
访问http://192.98.151.7,出现Tomcat目录列表。
访问http://192.98.151.7/geoserver,出现Geoserver目录列表。
访问http://192.98.151.7/mapbuilder,出现mapbuilder首页。
访问http://192.98.151.7/cqcbd,出现CBD管理系统首页。
说明:测试时只使用了一台服务器。