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

Apache+Tomcat实现负载均衡
安装Apache ,配置负载均衡

参考:http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html
http://www.ibm.com/developerworks/cn/opensource/os-lo-apache-tomcat/index.html
http://hi.baidu.com/luodaijun/blog/item/5bbe4cfb5ffef864034f56a1.html




1.1.1        安装 ( 1 )点击文件 apache_2.0.48-win32-x86-no_ssl.msi

( 2 )安装路径为 D:/ JIANGXI/Apache Group/Apache2
说明:

A、 需要输入 Network Domain 、 Server Name 和 Administrator's Email Address 在 “Network Domain” 里输入域。如果用本站的二级域名,例如 “test.dnschek.net” ,请输入 “test.dnschek.net” 。如果用顶级域名,请输入 “xxx.com” 。 ( 1166.jx163.com )
  在 “Server Name” 里输入服务器名。如果用本站的二级域名,请输入您的域名 “test.dnschek.net” 。如果用顶级域名,请输入 “www.xxx.com” 。
  在 “Administrator's Email Address” 里输入网站管理员的 Email 地址。

B、 选择典型安装。

C、 其他 采用默认配置。

D、 如果系统安装了其他 Web 服务器,如 IIS 、 WPS 等,占用了 80 端口的话,可以在 Apache 安装的时候,选择使用其他端口,如 8080 等。或者把 IIS 的所有 Web 站点停止。



1.1.2        Modules 下添加.so文件 ( 1 )下载 apache 的一个组件 Jakarta-tomcat-connectors-jk2.0.4-win32-apache2.0.49.zip

解压缩后将 modules 目录里面的 mod_jk2.so 文件, copy 到 Apache 安装目录下 modules 文件夹里 。



1.1.3        配置参数 httpd.conf 需要注意参数配置如下:

(1) 在行 "# LoadModule foo_module modules/mod_foo.so", 加入如下行 :
# Load mod_jk
LoadModule jk_module modules/mod_jk.so
#
# Configure mod_jk
#
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info


  ( 2 )在参数 DocumentRoot 下加入如下行:
     JkMount /* loadbalancer  
     另外如果配置了http-vhosts.conf文件, 则要加入:
        JkMount /*.do loadbalancer
    JkMount /*.jsp loadbalancer
    JkMount /servlet/* loadbalancer
    JKMount /MoreSearch loadbalancer


( 3 )编辑 Apache\Apache Group\Apache2\conf\ 目录下的 httpd.conf 文件,找到 ServerName 这一项参数,这一行是被注释掉的(前面有#的符号)。去掉前面的在 "#" 符号,并在后面填入你的 hostname 或 IP 地址,在这里设置为:

ServerName 1166.jx163.com:80

说明:详细的配置信息,参见 .\4-WEB\Apache\Apache Group\Apache2\conf\httpd.conf

1.1.4          配置参数 workers.properties ( 1 ) 定义 Workers 列表:
# list the workers by name
worker.list=tomcat1, tomcat2, tomcat3,  loadbalancer

 

( 2 ) 定义 Workers 的类型: # First tomcat server
worker.tomcat1.port= 8009       ( Tomcat worker 主机的侦听端口。 )
worker.tomcat1.host= 127.0.0.1   ( 侦听 ajp13 请求的 Tomcat worker 主机 )
worker.tomcat1.type= ajp13     (说明: 其使用 ajpv13 协议与 Tomcat 进程通讯 )
 

# Specify the size of the open connection cache.
worker.tomcat1.cachesize= 1000

( 当在多线程的 web server (例如 apache2.0 、 IIS 、 Netscape )中使用 JK 时,此属性是有效的。如果将 cachesize 的值设置为较高的值,这些支持多线程的 web server 将获得很好的处理能力。如果此属性不被设置,则连接 cache 特性将失效。 )

#
# Specifies the load balance factor when used with
# a load balancing worker.
# Note:
#  ----> lbfactor must be > 0
#  ----> Low lbfactor means less work done by the worker.
worker.tomcat1.lbfactor= 100

( 当此 Tomcat worker 被用于一个负载平衡 worker 使用时,此属性将被使用。它定义了此 worker 的负载平衡权值。 )

(2)       Second 和 3th 的 tomcat server 配置跟 First tomcat server 类似,区别的地方:

Second 和 3th 的 worker.tomcat1.port 分别为: 8019 、 8029

( 5 ) 定义一个名为 “loadbalancer” 的 worker ,其作为对多个 Tomcat 进程的负载平衡使用:

worker.loadbalancer.type=lb

worker.loadbalancer.balanced_workers=tomcat1, tomcat2, tomcat3

( 负载平衡类型的 worker 并不与 Tomcat worker 通讯,它负责管理这些 Tomcat worker 。 )