日期:2014-05-16  浏览次数:20777 次

linux下配置apche2.2.6 && tomcat5.5集群
到Apache官方网站下载所需要的文件:
httpd-2.2.6.tar.gz
apache-tomcat-5.5.23.tar.gz
mod_jk-1.2.27-httpd-2.2.6.so
一、安装apache
# tar xzvf httpd-2.2.6.tar.gz
# cd httpd-2.2.6
# ./configure --prefix=/usr/local/apache2 --enable-so
说明:--prefix为指定apache的安装路径(请按实际情况修改),其它项为预安装的模块, 除了 --enable-so 项外(--enable-so参数启用共享模块功能),可指定其它模块以后再安装
# make
# make install

二、复制mod_jk到modules
将 mod_jk-1.2.27-httpd-2.2.6.so放到apache下的modules文件夹下,并改名为mod_jk.so
注:mod_jk.so文件也可以在
http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/下载。
(mod_jk-1.2.27-httpd-2.2.6.so is for Apache 2.2.x and works with Apache 2.2.6 and later;
如果这样则不需要编译tomcat-connectors-1.2.26-src.tar.gz。)
如果此处的mod_jk.so是通过其它方法或者途径得到的,在后面启动apache的时候可能会提示:
Cannot load /usr/local/termite/apache/modules/mod_jk.so into server: /usr/local/termite/apache/modules/mod_jk.so: invalid ELF header
#file mod_jk.so
可能会显示 mod_jk.so: MS-DOS executable (EXE), OS/2 or MS Windows
而正确的应该显示
mod_jk.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), not stripped 

三、在apache/conf/下面建立两个配置文件mod_jk.conf和workers.properties。
#cd /usr/local/apache2/conf/
# vi mod_jk.conf
添加如下内容:
#########################################################################
# 指出mod_jk模块工作所需要的工作文件workers.properties的位置
JkWorkersFile conf/workers.properties

# Where to put jk logs
JkLogFile logs/mod_jk.log

#Set the jk log level [debug/error/info]
JkLogLevel error

#将所有servlet 和jsp请求通过ajp13的协议送给Tomcat,让Tomcat来处理
JkMount /*.jhtml controller
JkMount /*.do controller

JkMountCopy all #详细见下面说明
注意:使用mod_jk 1.2.6+时,如果你希望声明一个全局的JkMount's或者JkMountFile's来代替每个虚拟主机,你需要引入’JkMountCopy all’作为全局变量。如果你不想为每个虚拟主机拷贝同样的JkMount/MkMountFile,你需要在虚拟主机指令中声明’JkMountCopy On’。如果不加入此项,则负载均衡会失败!

########################################################################
# vi workers.properties
添加内容如下:
#######################################################################
worker.list=controller
#========tomcat1========
worker.tomcat1.port=8009
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1
#========tomcat2========
worker.tomcat2.port=9009
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
#========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2
worker.controller.sticky_session=true
worker.controller.sticky_session_force=false
#######################################################################

针对tomcat1还有几个参数:
#设置JK与远程服务器的Socket连接超时秒数,如果超出此秒数则产生一个错误,并再次重试。如果为0,JK会一直等下去。默认为0
#worker.tomcat1.socket_keepalive=1

#防止防火墙切断不在使用的连接,通过设置为True,通知操作系统向不在使用的连接发送KEEP_ALIVE消信。
#默认为False
#worker.tomcat1.socket_timeout=10
#通迅失败的的重式次数 默认是2
#worker.tomcat1.retries=3
#每次重式的时间间隔,毫秒单位 默认值为100
#worker.tomcat1.retry_interval:
说明如下:
################################3
1、其中worker.tomcat1.host中,tomcat1代表节点名,host值为节点IP, 如果有更多节点,顺序定义更多的node段,并在worker.controller.balance_workers后全部列出。
2、lbfactor是负载分配权重,值越大分配的负载越多。
3、worker.controller.sticky_session,设置为1或true使用粘着session,设置为0或false不使用粘着session。如果sticky_session设为true时,建议sticky_session_force设为false,此参数表明如果集群中某台服务器在多次请求没有响应后,将转发当前的请求到其它服务器上处理;sticky_session=false时,影响比较大,会导致转发到其它服务器上的请求,找不到原来的session,所以如果此时请求中有读取session中某些信息的话,就会导致应用的null异常。sticky_session、sticky_session_force的默认值分别为true,false。
sticky_session   sticky_session_force             含义
     true             false    &nb