Ubuntu 8.04下Apache和Tomcat的集群环境的搭建
集群环境技术上采用Apache Http Server提供的Mod_proxy负载均衡功能,集群服务采用Tomcat,操作系统Ubuntu 8.0.4,下面主要描述在Ubuntu下安装Apache http Server、JDK、Tomcat,以及如何配置集群环境。
二、配置集群环境
1. 安装mod_proxy模块
默认安装的Apache Http Server不带,可以下载同版本的Apache Http Server源程序,编译后形成需要的.so文件(下面列出),复制到apache的modules目录中(/usr/lib/apache2/modules/)。
★ mod_proxy.so
★ mod_proxy_ajp.so
★ mod_proxy_balancer.so
★ mod_proxy_connect.so
★ mod_proxy_http.so
★ mod_proxy_ftp.so
2. 负载均衡配置
编辑/etc/apache2/hpptd.conf,加入以下配置:
# Apache 自带的 mod_proxy 模块使用代理技术来连接 TomcatLoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
#LoadModule proxy_ajp_module /usr/lib/apache2/modules/mod_proxy_ajp.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
LoadModule proxy_connect_module /usr/lib/apache2/modules/mod_proxy_connect.so
LoadModule proxy_balancer_module /usr/lib/apache2/modules/mod_proxy_balancer.so
设置代理服务器转发方式,stickysession表示会话保持,JSESSIONID是会话ID,nofailover=on是说不使用失效转移#ProxyPass /foool http://special.example.com/ smax=5 max=10
ProxyPass /kebbs !
ProxyPass /ke/system !
#ProxyPass / balancer://mycluster stickysession=jsessionid nofailover=On
ProxyPass /ke balancer://mycluster stickysession=jsessionid nofailover=On
BalancerMember http://127.0.0.1:8080/
BalancerMember http://192.168.3.44:80/
# Less powerful server, don't send as many requests there
#BalancerMember http://1.2.3.6:8009 smax=1 loadfactor=20
具体有关apache的集群配置看相关文档吧,这里简单解释一下:
proxypass /kebbs ! 表示/kebbs的请求不进行转发,下面/ke/system同样意思。
做转发的是/ke的请求
紧接着就是负载平衡了,可以看到,是在本机和一个3.44的机器间做负载平衡。
/kebbs是系统上挂的一个php的论坛,由于就在本机,所以请求不转发,论坛的代码放在apache的web目录下
/var/www/kebbs
整体上,apache2在ubuntu上的配置结构有所特殊的地方,这个网上很多资料都有介绍。
/etc/apache2下的httpd.conf是用户配置文件,apache2.conf是基础配置,一般不用动
/etc/apache2/mods-available下的php5.conf和php5.load分别是php的配置和加载模块的文件。内容如下
LoadModule php5_module /usr/lib/apache2/modules/libphp5.so(.load文件)
AddType application/x-httpd-php .php .phtml .php3
AddType application/x-httpd-php-source .phps
(.conf文件)