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 。 )