apache服务器和tomcat的连接方法其实有三种:JK、http_proxy和ajp_proxy,本文主要介绍最为常见的JK。
基于centos5.5 linux下配置:
1.安装tomcat7、apache2.2.22服务器及版本对应的JK
这里需要注意的是JK版本必须与apache服务器版本号对应,对应的linux的编译的jk版本可以到网上搜索 mod_jk.so去下载
注意点:如果你安装的apache是2.0.63版本或者说是2.0.X版本做好选用 mod_jk-1.2.26-httpd-2.0.61.so,如果是最新版2.2.22,可以选用最用mod_jk-1.2.31-httpd-2.2.x.so,总之不成功的时候自己去试试so,我就实验好多,一开始机器装的是2.0.63的apache让人崩溃的老版本.
下载对应的so文件到apache下的modules目录中,apache_home表示apache服务器安装目录.
2.配置apache服务器
2.1 httpd.conf文件
apache_home目录下的conf/httpd.conf文件中添加
复杂配置:
-
LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.x.so
-
JkWorkersFile conf/workers.properties
-
JkMountFile conf/uriworkermap.properties #加载workers的请求处理分配文件 可以不需要
-
JkLogFile logs/mod_jk.log #指定jk的日志输出文件 可以不需要
-
JkLogLevel warn #指定日志级别可以不需要
-
JkMount /* lbcontroller #根据需要可以配置多个 设置apache分发器,/*表示apache将所有文件都由分发器lbcontroller 进行分发,你可以自行设置*.jsp,*.do等
-
-
uriworkermap.properties文件,内容如下
-
/*=lbcontroller #所有请求都由controller这个server处理
-
/jkstatus=status #所有包含jkstatus请求的都由status这个server处理
-
!/*.gif=lbcontroller #所有以.gif结尾的请求都不由controller这个server处理,以下几个都是一样的意思
-
!/*.jpg=lbcontroller
-
!/*.png=lbcontroller
-
!/*.css=lbcontroller
-
!/*.js=lbcontroller
-
!/*.htm=lbcontroller
-
!/*.html=lbcontroller
简单配置:apache文件加 Include “/usr/local/apache/conf/mod.conf”
在”/usr/local/apache/conf/目录下创建mod.conf内容:
-
LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.x.so
-
JkWorkersFile conf/workers.properties
-
#JkMount /*.jsp lbcontroller
-
#JkMount /*.do lbcontroller
-
JkMount /* lbcontroller #根据需要可以配置多个 设置apache分发器,/*表示apache将所有文件都由分发器lbcontroller 进行分发,你可以自行设置*.jsp,*.do等
2.2 workers.properties文件
在apache_home下conf目录中新建workers.properties文件,输入以下内容
-
Xml代码
-
worker.list=lbcontroller
-
-
#Tomcat1实例配置
-
worker.tomcat1.host=localhost #此处可以是你的ip地址
-
worker.tomcat1.port=8009
-
worker.tomcat1.type=ajp13
-
#分发权重 值越大负载越大
-
worker.tomcat1.lbfactor = 1
-
-
#Tomcat2实例配置
-
worker.tomcat2.host=localhost #此处可以是你的ip地址
-
worker.tomcat2.port=9009
-
worker.tomcat2.type=ajp13
-
#分发权重 值越大负载越大
-
worker.tomcat2.lbfactor = 1
-
-
#负载均衡分发控制器
-
worker.lbcontroller.type=lb
-
worker.lbcontroller.balance_workers=tomcat1,tomcat2
-
worker.lbcontroller.sticky_session=True
在这里 worker.list=lbcontroller,内容即为httpd.conf文件中的分发器名称。需要注意的内容是,tomcat实例名称
Xml代码:
-
worker.tomcat1.host=....
-
...
-
worker.tomcat2.host=....
-
...
在这里就是tomcat1和tomcat2必须与之后tomcat中的server.xml中jvmRoute值一致。
-
<pre>
-
更多的work.properties可以参考:
-
<pre lang="java" line="1">
-
worker.list=loadbalancer #定义负载均衡的名称
-
worker.loadbalancer.type=lb #定义负载均衡的类型,为lb
-
worker.loadbalancer.error_escalation_time=0 #切换错误状态时间
-
worker.loadbalancer.max_reply_timeouts=10
-
worker.loadbalancer.sticky_session=1 #1代表为true,0代表为false。
-
#worker.loadbalancer.sticky_session_force=true
-
-
worker.loadbalancer.balance_workers=lb1,lb2 #负载均衡的工作者名称
-
-
worker.lb1.reference=worker.template #lb1参考worker.template工作模板
-
worker.lb1.host=localhost #lb1的ip地址
-
worker.lb1.port=8009 #lb1端口,这里是ajp端口,不是网站端口
-
worker.lb1.activation=A #A:active模式 D:sticky模式 S:不使用
-
-
worker.lb2.reference=worker.template
-
worker.lb2.host=localhost
-
worker.lb2.port=9009
-
worker.lb2.activation=A
-
-
worker.template.type=ajp13 #上面lb1,lb2参考下面的值worker.template,协议ajp13
-
worker.template.socket_connect_timeout=5000 #套接字连接超时为5000毫秒,默认为0
-
worker.template.socket_keepalive=true #开启保持为真,默认为false
-
worker.template.ping_mode=A #使用cping/cpong模式,有C,P,I,A四个模式。A全选
-
worker.template.ping_timeout=10000 #探测cping/cpong超时间默认10000毫秒
-
worker.template.connection_pool_minsize=0 #连接池关闭最小时间
-
worker.template.connection_pool_timeout=600 #连接池600秒
-
worker.template.reply_timeout=300000 #答复超时300000毫秒
-
worker.template.recovery_options=3 #重试次数
3.tomcat集群配置:配置每个tomcat目录下的server.xml文件,具体修改内容如下
(责任编辑:最模板) |