Jeasyframe 我们不专业,但我们很用心.

apache+tomcat+jk负载均衡搭建教程

  一. 准备资源.
资源包括apache2.2.X服务器,tomcat6.0.X,JK1.2.X.
1.apache2.2.X服务器下载地址:http://httpd.apache.org/   注意这里如果使用2.4版本,那么相应的JK版本也需要下载对应的版本.
2.tomcat6.0下载地址:http://tomcat.apache.org/download-60.cgi
3.JK1.2.X下载地址:http://tomcat.apache.org/download-connectors.cgi或者百度搜mod_jk-1.2.30-httpd-2.2.3.so,现在官网已经将JK的版本已经统一,目前最高版本是1.2.37,推荐使用1.2.30稳定版本.
以上所有资源在下面的链接中可以全部下载到. http://115.com/lb/5lbcqxjmi976   该压缩包已经配置好了负载均衡,并配置了动静分离.

二.安装apache2.2服务器.
1.该教程主要针对win32系统,如果是linux系统,可以自行搜索下apache的安装教程.
2.win32上是msi安装包,直接双击安装,所有组件全选,一路下一步即可.

三.准备路径.
1.我配置的路径分别是 apahce服务器:C:/fynginx/apacheserver tomcat1服务器: C:/fynginx/apache-tomcat-6.0.36-1 tomcat2服务器:C:/fynginx/apache-tomcat-6.0.36-2

四.组装apache服务器的配置文件.
1.将下载的 mod_jk-1.2.30-httpd-2.2.3.so 复制到apahce服务器主目录下的modules文件夹中,即C:/fynginx/apacheserver/modules,在这里你可以看到很多so文件,这些都是apache的组件文件.(以下路径介绍时,均按照本教程中样例路径.)
2.在C:/fynginx/conf/extra/中创建jk配置文件,文件名为 mod_jk.conf ,编辑该文件,录入如下内容(无需更改,所有路径均为相对路径):


#load module mod_jk-1.2.30-httpd-2.2.3.so is for Apache 2.2.x. 

LoadModule jk_module modules/mod_jk-1.2.30-httpd-2.2.3.so

#配置 mod_jk conf 

#加载集群中的workers 

JkWorkersFile conf/workers.properties 

#加载workers的请求处理分配文件         

JkMountFile conf/uriworkermap.properties 

#指定jk的日志输出文件 

JkLogFile logs/mod_jk.log 

#指定日志级别 

JkLogLevel info

3. 在C:/fynginx/conf/找到httpd.conf,编辑该文件,在文件末尾处,可以看到众多被注释掉的#include....等字样,在这后面加上如下内容:

# JK2

Include conf/extra/mod_jk.conf

4. 在C:/fynginx/conf/中创建workers.properties文件,编辑该文件,录入如下内容:

# worker列表 

worker.list=LB_worker,jkstatus 

 

#第一个worker的配置,名为worker_1 

#tomcat的主机地址,如不为本机,请填写ip地址 

worker.worker_1.host=localhost

#ajp13 端口号,对应tomcat配置文件server.xml中Connector port="8019",默认8009 

worker.worker_1.port=8019 

worker.worker_1.type=ajp13 

#负载的权重值,越高表示负载越大 

worker.worker_1.lbfactor=1 

 

#第二个worker的配置,名为worker_2 

worker.worker_2.host=localhost 

#ajp13 端口号,对应tomcat配置文件server.xml中Connector port="8029" 

worker.worker_2.port=8029 

worker.worker_2.type=ajp13 

worker.worker_2.lbfactor=1 

 

#LB_worker,用于负载均衡分发的控制器 

worker.LB_worker.type=lb 

#重试次数 

worker.LB_worker.retries=3 

#指定负载的worker列表,用逗号分隔 

worker.LB_worker.balance_workers=worker_1,worker_2 

#配置session会话是否为粘性 

#这样负载均衡器lb就会尽量保持一个session,也就是使用户在一次会话中跟同一个Tomcat进行交互 

worker.LB_worker.sticky_session=true 

#如果sticky_session设为true时,此处一般设为false 

worker.LB_worker.sticky_session_force=false 

#设置运行状态的控制器 

worker.jkstatus.type=status 


workers.properties相关参数说明:

http://tomcat.apache.org/connectors-doc/reference/workers.html ;

worker.loadbalancer.sticky_session=true

该参数指定集群是否实现会话粘性,如果设为 true ,则表明为会话粘性,同一个session的请求会分发到同一台tomcat;当多个tomcat有一个session管理器时该值设为 false。

worker.loadbalancer.sticky_session_force=false
该参数仅在上面sticky_session=true时才起作用。如果上面的 sticky_session 设为 true 时,建议此处也设为 false

在C:/fynginx/conf/中创建uriworkermap.properties文件,编辑该文件,录入如下内容:

#所有请求都由LB_worker这个worker处理 

/*=LB_worker 

#所有包含jkstatus请求的都由名称叫jkstatus的这个worker处理 

/jkstatus=jkstatus

#所有以.gif、.jpg等等结尾的请求都不经过名称叫LB_worker的worker处理
#该部分为动静分离配置,如果不使用动静分离,要去掉以下配置.如果使用动静分离,还需要将你项目中的静态资源,放置在apache服务器中的htdocs(服务器根目录,类似tomcat的webapps)文件夹下,路径需要与你tomcat中的项目相对路径保持一致.

# ! 表示 非 的意思

!/*.jpg=LB_worker

!/*.png=LB_worker

!/*.gif=LB_worker

!/*.doc=LB_worker

!/*.docx=LB_worker

!/*.xls=LB_worker

!/*.xlsx=LB_worker

!/*.txt=LB_worker

!/*.js=LB_worker

!/*.css=LB_worker
!/*.swf=LB_worker


uriworkermap.properties相关参数说明:

http://tomcat.apache.org/connectors-doc/reference/uriworkermap.html ;

五.修改tomcat配置文件
1.关于tomcat jdk配置就不赘述了.主要修改文件为tomcat的server.xml.
2.两个tomcat都要修改,注意端口不可以重复.
3.下面是代码片段,需要注意的部分已经标红.

<Connector port="8081" protocol="HTTP/1.1"  connectionTimeout="20000"  redirectPort="8413" URIEncoding="UTF-8"/>
<!--注意这里是为了防止tomcat乱码-->
<Connector port="8019" protocol="AJP/1.3" redirectPort="8413" URIEncoding="UTF-8"/>
<!--注意这里是为了防止负载均衡后产生apache和tomcat乱码--> 
<Engine name="Catalina" defaultHost="localhost" jvmRoute="worker_1">
<!--对应workers.properties文件中的主机地址-->

基本上到这一步,初步的负载均衡和动静分离就完成了,同时也配置了session共享.将你的项目放置在tomcat中,可以进行测试负载均衡,访问http://localhost/jkstatus可以查看服务器运行情况.


作者:djzhou 分类:JEF框架教程 浏览:631 评论:0
留言列表
发表评论
来宾的头像