apache tomcat mod_jk负载均衡

apache tomcat前面都已经下载过来了,可以看这里。配置过程基本和mod_proxy基本一致,只有apache配置过程不同。方便以后查看,就把所有都记录下来。用jk配置只需下载mod_jk.so了。

统一解压安装这几个软件到/usr/local目录

tar zxf httpd-2.4.3.tar.gz -C /usr/local
tar zxf apache-tomcat-7.0.34.tar.gz -C /usr/local/
cd /usr/local
cd httpd-2.4.3
./configure --prefix=/usr/local/apache2  --enable-module=so
mv apache-tomcat-7.0.34 tomcat1
cp -R tomcat1 tomcat2

上面在安装apache的时候可能会出现一些错误,可以看这里,因为之前安装过,这里过程就不写了。

上次写的文件,支持直接上几个图片

修改tomcat1的server.xml

修改tomcat2的server.xml

先修改server shutdown节点的端口

在修改tomcat监听的端口

最后和修改tomcat1一样在engine上加上jvmRoute

tomcat已经配置完了,可以分别开启测试下是否可以正常看到猫的界面。当然我这里肯定可以看到。

接下来安装jk了

wget http://mirror.bit.edu.cn/apache//tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.37-src.tar.gz
tar zxf tomcat-connectors-1.2.37-src.tar.gz
cd tomcat-connectors-1.2.37-src/native/
./configure --with-apxs=/usr/local/apache2/bin/apxs
make && make install 
这样mod_jk.so就自动放到apache2/modlues目录里面去了
[root@localhost local]# ll /usr/local/apache2/modules/mod_jk.so 
-rwxr-xr-x. 1 root root 869358 Dec 25 02:46 /usr/local/apache2/modules/mod_jk.so

修改httpd.conf

vi apache2/conf/httpd.conf
在最后加入
#Mod_Jk configure
Include conf/mod_jk.conf
接下来在apache  conf目录下新建mod_jk.conf文件
touch apache2/conf/mod_jk.conf
在里面加入
#加载moldules下mod_jk.so文件
loadModule jk_module modules/mod_jk.so
#加载集群中的工作的tomcat配置文件
JkWorkersFile conf/workers.properties
#共享内存的配置和运行时信息文件名
JkShmFile logs/mod_jk.shm
#加载请求处理分配文件
JkMountFile conf/uriworkermap.properties
#指定jk的日志输出文件
JkLogFile     logs/mod_jk.log
#日志输出文件的级别
JkLogLevel    error
集体配置可参考 apache 官方文档

然后接着在创建tomcat负载配置属性文件

touch apache2/conf/workers.properties

编辑这个文件,往里面加入

#
#workers.properties
#配置格式为worker.<worker name>.<directive>=<value>
#
# worker列表
worker.list=lb_s,status

# 第一个tomcat
# ------------------------
#port 为配置tomcat ajp监控端口,不是http的端口
worker.s1.port=8009
#tomcat的主机地址,如不为本机,请填写ip地址
worker.s1.host=localhost
worker.s1.type=ajp13
#负载的权重值,越高表示负载越大
worker.s1.lbfactor=1

# 第二个tomcat
# ------------------------
worker.s2.port=9009
worker.s2.host=localhost
worker.s2.type=ajp13
worker.s2.lbfactor=1

# 第N个tomcat
# ------------------------
#worker.sN.port=10009
#worker.sN.host=localhost
#worker.sN.type=ajp13
#worker.sN.lbfactor=1

#用于负载均衡分发的控制器,名称为lb_s
worker.lb_s.type=lb
#失败时重试转发次数
worker.lb_s.retries=3
#加入负载均衡的tomcat worker,上面定义如要加载在这里
worker.lb_s.balanced_workers=s1,s2
#配置session会话是否为粘性
#这样负载均衡器lb就会尽量保持一个session,也就是使用户在一次会话中跟同一个Tomcat进行交互
#不建议配置为1(or true)
#worker.lb_s.sticky_session=false 
#worker.lb_s.sticky_session_force=true
#设置运行状态的控制器
worker.status.type=status

详细文档可以看这里,apache workers.html

接下来继续配置请求映射文件

touch apache2/conf/uriworkermap.properties

往里面加入

#这个后面配置的value要在worker.properties文件里面存在对应的worker
#所有请求都交给lb_s这个worker处理
/*=lb_s
#所有包含status请求的都由名称叫status的这个worker处理
/status=status
#感叹号表示接下来的 URI 不要由 JK 进行处理
#静态文件都不通过jk处理,直接由apache处理
!/*.gif=lb_s
!/*.jpg=lb_s
!/*.png=lb_s
!/*.css=lb_s
!/*.js=lb_s

uriworkermap.properties官方说明

到这里,jk负载也就处理完了。

首先启动两个tomcat,然后再启动apache,访问http://localhost/test.jsp每次就可以看到不同的页面咯。

ps:我之前已经分别在两个tomcat webapps/ROOT下加入了2个内容不同的test.jsp。

搞定!

你可能感兴趣的:(apache,tomcat,mod_jk集群,mod_jk负载均衡)