Apache 和Tomcat组合

一、前言

      1. Apache是Web服务器,它支持静态页面,有很好的静态页面处理能力;Tomcat是应用(Java)服务器,它支持动态页面(例如Servlet,JSP)。一般在使用Apache + Tomcat的配置下,Apache都是实现对JSP的转发,交给Tomcat来处理,两者搭配可以支持静态和动态页面。

        2. Tomcat,它只是一个servlet容器,是Apache的扩展,但可以独立于Apache运行;如果以独立方式运行,功能与Apache等效,但对静态页面的处理不太理想。

      3. 为了提高整个系统的可用性和性能,常常会用到负载均衡,而Apache和Tomcat经常联合在一起来实现负载均衡技术。

           ①.保证多台Tomcat服务器之间会话的同步,确保任何一台当机都不会影响系统的运行,从而提高系统的可用性。

            ②.在负责负载平衡的Apache主机上记录每个请求的Session ID(这个ID是由Tomcat分配的)及回应Session的Tomcat Server对应关系,在下一个请求到来时先判断每个Session ID,如果有标识连接已经建立,那么转到对应服务器;负责就是新的连接,根据每个后台Tomcat服务器的状态分配一个服务器并记录Session ID.

二、Apache + Tomcat 组合配置

      1. 通讯方式

           Apache和Tomcat之间的通讯基本有三种方式(Mod_Jk、HTTP_Proxy和AJP_Proxy),由于当前流行方式且官方文档非常全的为Mod_Jk,所以本文中采用的为Mod_Jk方式(具体介绍可自行百度,本文不做具体介绍)

    2.配置步骤安装

          ①. 安装Apache HTTP服务器,从Apache官方网站下载,我安装的是apache_httpd-2.4.18

          ②. 安装Apache Tomcat,可以安装在Apache同一个机器,也可以在其他的机器

          ③. Mod_Jk配置

              Ⅰ.下载Mod_Jk.so将其放置到目录Apache/Modules下

              Ⅱ.修改httpd.conf,增加一行:Include conf/mod_jk.conf

              Ⅲ.在conf目录下新建Mod_jk.conf文件,内容为:

#Load mod_jk module.

LoadModule jk_module modules/mod_jk.so

#Where to find workers.properties

JkWorkersFile conf/workersOne.properties

JkMountFile conf/workersTwo.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]"

#JkRequestLogFormat set the request format

JkRequestLogFormat "%w %V %T"

JkMount /* loadbalancer 

                Ⅳ.  在conf目录下新建workersOne.properties文件,内容为:

#worker.list=loadbalancer

worker.list=loadbalancer,tomcat1,tomcat2  #server列表

#define the first node

worker.tomcat1.port=8009

worker.tomcat1.host=127.0.0.1

worker.tomcat1.type=ajp13

worker.tomcat1.lbfactor=1

#define the first node

worker.tomcat2.port=8009

worker.tomcat2.host=127.0.0.1

worker.tomcat2.type=ajp13

worker.tomcat2.lbfactor=1

#Now we define the load-balancing behavior

worker.loadbalancer.type=lb

worker.loadbalancer.balance_workers=tomcat1, tomcat2

worker.loadbalancer.sticky_session=true

worker.loadbalancer.sticky_session_force=true

                Ⅴ.在conf目录下新建workersTwo.properties文件,内容为:

!/*.htm=loadbalancer

你可能感兴趣的:(Apache 和Tomcat组合)