本文内容转载整理自《Apache HTTP Server 与 Tomcat 的三种链接方式介绍》(http://www.ibm.com/developerworks/cn/opensource/os-lo-apache-tomcat/)css
Apache与Tomcat整合的优点有如下几点:html
1. 提高对静态文件的处理性能shell
2. 利用 Web 服务器来作负载均衡以及容错apache
3. 无缝的升级应用程序tomcat
整合方式一:使用Apache的mod_jk.so模块服务器
使用该方式须要三个配置文件,分别是httpd.conf、workers.properties、uriworkermap.properties,这三个配置文件均需放在apache的conf目录下。session
示例内容以下:负载均衡
httpd.conf性能
# Add module mod_jk.so LoadModule jk_module modules/mod_jk.so # # Configure mod_jk # # Configure worker JkWorkersFile conf/workers.properties # Configure uri JkMountFile conf/uriworkermap.properties JkLogFile logs/mod_jk.log JkLogLevel warn
workers.propertiesspa
# # workers.properties # # list the workers by name # DLOG4J is worker worker.list=DLOG4J, status # localhost server 1 # ------------------------ worker.s1.port=8009 worker.s1.host=localhost worker.s1.type=ajp13 # localhost server 2 # ------------------------ worker.s2.port=8519 worker.s2.host=192.168.200.14 worker.s2.type=ajp13 worker.s2.stopped=1 # configure the type of DLOG4J is loadbalance worker.DLOG4J.type=lb worker.retries=3 # configure s1 and s2 is balanced workers worker.DLOG4J.balanced_workers=s1, s2 worker.DLOG4J.sticky_session=1 worker.status.type=status
uriworkermap.properties
# # uriworkermap.properties # /*=DLOG4J /jkstatus=status !/*.gif=DLOG4J !/*.jpg=DLOG4J !/*.png=DLOG4J !/*.css=DLOG4J !/*.js=DLOG4J !/*.htm=DLOG4J !/*.html=DLOG4J
整合方式二:使用Apache的mod_proxy.so模块
http_proxy
注意:使用Apache的http_proxy,Tomcat必须配置HTTP Connector使其能支持HTTP协议。
单机时,可用如下配置
ProxyPass /images ! ProxyPass /css ! ProxyPass /js ! ProxyPass / http://localhost:8080/
机器时,可用如下配置
ProxyPass /images ! ProxyPass /css ! ProxyPass /js ! ProxyPass / balancer://example/ <Proxy balancer://example/> BalancerMember http://server1:8080/ BalancerMember http://server2:8080/ BalancerMember http://server3:8080/ </Proxy>
ajp_proxy
注意:使用Apache的ajp_proxy,Tomcat必须配置AJP Connector使其能支持AJP协议。
ProxyPass /images ! ProxyPass /css ! ProxyPass /js ! ProxyPass / balancer://example/ <Proxy balancer://example/> BalancerMember ajp://server1:8080/ BalancerMember ajp://server2:8080/ BalancerMember ajp://server3:8080/ </Proxy>