您的位置:首页 > 运维架构 > Tomcat

Apache+JK+Tomcat实现负载均衡

2012-11-09 17:47 316 查看
Apache+JK+Tomcat配置
Apache+Tomcat实现负载均衡有3中方式,分别是:ajp_proxy、http_proxy和jk,这里选用apache+jk+tomcat的方式(此种方式网上对其的稳定性评价相对较高)。

下载

1.      Apache安装文件httpd-2.2.22-win32-x86-openssl-0.9.8t.msi

2.      Windows环境下Tomcat免安装64bit版apache-tomcat-7.0.27-windows-x64

3.        JK文件压缩包tomcat-connectors-1.2.37-windows-i386-httpd-2.2.x.zip这里要注意的是JK的版本要与Apache的版本相匹配

4.        官网地址http://www.apache.org/

安装:

1. 选定3台服务器,此处假设有ip分别为:192.168.1.11、192.168.1.12、192.168.1.13的3台服务器可用,分配如下:192.168.1.11安装Apache,192.168.1.12和192.168.1.13安装Tomcat,每台安装两个,即是Apache+4Tomcat的模式实现负载均衡。

2. 安装Apache,安装过程简单,略过。

3. 解压tomcat-connectors-1.2.37-windows-i386-httpd-2.2.x.zip得到mod_jk.so文件,将其放入Apache安装目录下的modules目录。

4. 安装Tomcat,每台服务器上各安装两个,此处用的是免安装版,安装过程简单,略过。

配置:

1.      修改Apache配置文件httpd.conf

1)修改监听端口,搜索Listen 80(默认是80端口),修改为相应需要监听的端口即可。

2)在httpd.conf的最后写入:Include conf/mod_jk.conf

2.  httpd.conf
文件同目录下新建mod_jk.conf文件,写入如下内容:


# 加载mod_jk模块

LoadModule jk_module modules/mod_jk.so

# 指定 workers.properties文件路径

JkWorkersFile conf/workers.properties

# 设置日志存放路径

JkLogFile logs/mod_jk.log

# 设置日志级别 [debug/error/info]

JkLogLevel info

#指定哪些请求交给Tomcat处理

JkMount / * router

JkMount /jkmanager* jkstatus

# 关掉主机Lookup

HostnameLookups Off

3.  httpd.conf
文件同目录下新建workers.properties文件,写入如下内容:


#设定工作的负载平衡器

worker.list=router,jkstatus

worker.router.type=lb

#指定负载平衡器的Tomcat节点(此处有4个Tomcat节点)

worker.router.balance_workers=worker1,worker2,worker3,worker4

#类型

worker.worker1.type=ajp13

#Tomcat服务器的ip地址

worker.worker1.host=192.168.1.12

# 工作端口

 worker.worker1.port=8109

#负载平衡的权重,权重越大,则分配到此节点的请求越多

worker.worker1.lbfactor=2

worker.worker1.socket_keepalive=1

#以下3个配置类推

worker.worker2.type=ajp13

worker.worker2.host=192.168.1.12

worker.worker2.port=8209

worker.worker2.lbfactor=2

worker.worker2.socket_keepalive=1

 

worker.worker3.type=ajp13

worker.worker3.host=192.168.1.13

worker.worker3.port=8109

worker.worker3.lbfactor=2

worker.worker3.socket_keepalive=1

 

worker.worker4.type=ajp13

worker.worker4.host=192.168.1.13

worker.worker4.port=8209

worker.worker4.lbfactor=2

worker.worker4.socket_keepalive=1

 

worker.jkstatus.type=status

worker.loadbalancer.sticky_session=true

worker.loadbalancer.sticky_session_force=true

4. 修改每个Tomcat的server.xml,此处以192.168.1.12的第一台Tomcat为例

1)修改http监听端口,此处端口设为8181,此步骤必须,以免同一服务器上的两台Tomcat端口冲突。

<Connector port="8181" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

2) 修改AJP监听端口,此处端口设为8109(与上面worker.worker1.port=8109匹配), 此步骤必须,以免同一服务器上的两台Tomcat端口冲突。

<Connector port="8109" protocol="AJP/1.3" redirectPort="8443" />

3) 配置服务器标识,此处配置为worker1(与上面workers.properties中配置匹配),此步骤必须。

将原<Engine name="Catalina" defaultHost="localhost" >修改为:

<Engine name="Standalone" defaultHost="localhost" jvmRoute="worker1">

4)其余3台Tomcat修改步骤类推,全部Tomcat修改完毕后,一一启动Tomcat测试是否配置正确。

5. 优化Apache配置,在httpd.conf中加入如下内容:

#连接的最大请求数量

MaxKeepAliveRequests 20000

keepalive  on

#连接的保持时间

keepalivetimeout  3

# 每个进程的线程数

ThreadsPerChild 1920

#最大并发连接数

<IfModule mpm_prefork_module>

       StartServers 5

       MinSpareServers 5

       Maxspareservers 10

       ServerLimit 21000

       MaxClients 20100

       MaxRequestsPerChild 300

</IfModule>

Win32DisableAcceptEx

使用:启动所有Tomcat,启动Apache

注:如果有不止3台服务器可用,或者没有3台,只有2台甚至只有一台,只要作相应修改即可,如在只有一台服务器可用的情况下,可
9c95
以将Apache和多个Tomcat安装在同一台服务器上。

另: 建议为同一服务器下的多个Tomcat单独设置内存,以具有更好性能。Windows下多个Tomcat间的文件同步,建议使用cwRsync,配置简单、性能良好,参考文档http://www.cnblogs.com/daizhj/archive/2009/11/03/1595395.html
  如需同一服务器下的多个免安装版Tomcat能同时启动同时关闭以方便使用,可以为启动和关闭分别写个.bat文件,如需Tomcat在服务器重启时能自动开机启动,将.bat文件放入开机启动项即可。

END:以上配置是实际环境中所使用整理而来,目前性能良好,欢迎大家一起讨论,以使性能最优化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息