负载均衡Apache2.2.4-Tomcat5.5.17

负载均衡Apache2.2.4-Tomcat5.5.17实现
Load Balance Load Balance 
 
1        环境说明
1.    服务器有 4台,一台内核的linux2.6.9安装apache,三台安装Tomcat。
2.    apache2.2.4 、 apache-tomcat-5.5.17、jdk-6u1-linux-i586-rpm.bin或者 jdk1.5.6
ip配置,一台安装apache的ip为180.200.1.189,三台安装tomcat的服务器ip分别为180.200.1.111/136/42。当然需要修改成你自己的IP地址。
3.    下载地址为
下载 tomcat and apache
http://apache.org
下载 jdk
http://java.sun.com    
2        Tomcat安装
1.    在三台要安装 tomcat的服务器上先安装jdk
2.    配置 jdk的安装路径,在环境变量path中加入jdk的bin路径,新建环境变量JAVA_HOME指向jdk的安装路径
3.    在三台要安装 tomcat的服务器上分别安装tomcat,调试三个tomcat到能够正常启动
4.    分别测试每个 tomcat的启动是否正常
http://180.200.0.42:8080
http://180.200.0.136:8080
http://180.200.0.111:8080
 
3        Apache安装
解压 httpd-2.2.4.tar.gz
在那台要安装apache的服务器上安装apache2.2.4。在home下建立apache目录,把httpd-2.2.4.tar.gz上传到该目录下
[root@localhost apache]# tar xvzf httpd-2.2.4.tar.gz
[root@localhost apache]# cd httpd-2.2.4
配置 APACHE安装文件
这里需要注意编译前一定要将 proxy proxy_http proxy_ftp proxy_connect headers这些参数加进去,以便编译出下面的so文件

mod_proxy.so
mod_proxy_connect.so
mod_proxy_http.so
mod_proxy_ftp.so
mod_proxy_ajp.so
mod_proxy_balancer.so
 
配置编译参数
[root@localhost apache]#./configure --prefix=/usr/local/apache224 --enable-so --enable-mods-shared="proxy proxy_http proxy_ftp proxy_connect headers"
 
编译
[root@localhost apache]# make
检查编译后的是否有编译出 so文件
[root@localhost apache]# cd /usr/local/apache224/modules
[root@localhost modules]#]# ls
httpd.exp        mod_proxy_ajp.so       mod_proxy_connect.so mod_proxy_http.so
mod_headers.so mod_proxy_balancer.so mod_proxy_ftp.so       mod_proxy.so
 
如果存在以上文件则说明编译成功
安装
[root@localhost apache]# make install
 
启动 APACHE
[root@localhost apache]# /usr/local/apache224/bin/httpd -k start
测试
http://180.200.1.189/
如果输出 IT works那么就ok了
 
 
4        配置负载均衡
4.1.    Tomcat配置
分别修改三个 tomcat的配置文件conf/server.xml以便测试
修改内容如下:
修改前
    <!-- An Engine represents the entry point (within Catalina) that processes<br />          every request.  The Engine implementation for Tomcat stand alone<br />          analyzes the HTTP headers included with the request, and passes them<br />          on to the appropriate Host (virtual host). -->

    <!-- You should set jvmRoute to support load-balancing via AJP ie :<br />     <Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">         <br />     -->
        
    <!-- Define the top level container in our container hierarchy -->
    
修改后
    <!-- An Engine represents the entry point (within Catalina) that processes<br />          every request.  The Engine implementation for Tomcat stand alone<br />          analyzes the HTTP headers included with the request, and passes them<br />          on to the appropriate Host (virtual host). -->

    <!-- You should set jvmRoute to support load-balancing via AJP ie :-->
            
    
        
    <!-- Define the top level container in our container hierarchy <br />     <Engine name="Catalina" defaultHost="localhost"><br />     -->
将其中的jvmRoute="jvm1"分别修改为jvmRoute="worker1"和jvmRoute=" worker2"和jvmRoute=" worker3"

然后重启三个tomcat,调试是否能够正常启动。
http://180.200.0.42:8080
http://180.200.0.136:8080
http://180.200.0.111:8080


4.2.    Apache配置
4.2.1.         启用代理
 
1.   配置代理模块
 
[root@localhost ~]#vi /usr/local/apache224/conf/httpd.conf
查找代理是否打开
/LoadModule proxy_module
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
如果被注释则需要打开注释,如果不存在则需要添加进去
查找 httpd-vhosts.conf
/httpd-vhosts.conf
# Include conf/extra/httpd-vhosts.conf
打开注释
保存退出
:wq
4.2.2.         配置代理主机
 [root@localhost ~]#vi /usr/local/apache224/conf/extra/httpd-vhosts.conf
#注释掉以下所有行
    ServerAdmin [email protected]
    DocumentRoot /www/docs/dummy-host.www.serviceapache.com
    ServerName dummy-host.www.serviceapache.com
    ServerAlias www.dummy-host.www.serviceapache.com
    ErrorLog logs/dummy-host.www.serviceapache.com-error_log
    CustomLog logs/dummy-host.www.serviceapache.com-access_log common
    ServerAdmin [email protected]
    DocumentRoot /www/docs/dummy-host2.www.serviceapache.com
    ServerName dummy-host2.www.serviceapache.com
    ErrorLog logs/dummy-host2.www.serviceapache.com-error_log
    CustomLog logs/dummy-host2.www.serviceapache.com-access_log common
#添加以下信息
   ServerName localhost
   CustomLog logs/dmim_log combined
  
        BalancerMember ajp://180.200.1.111:9109
        BalancerMember ajp://180.200.0.42:8009
        BalancerMember ajp://180.200.0.136:9309
        BalancerMember ajp://180.200.1.189:8009
  
  
        ProxyPass balancer://localhost/
  
#保存退出
:wq
 
5        部署
5.1.       编写测试代码
在三个 tomcat的安装目录中的webapps建立相同的应用,我和应用目录名为apa,在三个应用目录中建立相同 WEB-INF目录和页面index.jsp,index.jsp的页面内容如下
<!--page contentType="text/html; charset=GBK"-->
<!--page import="java.util.*"-->


Server Info:
<!--r /> </font></span></span><span lang="EN-US"><font size="3">out.println(request.getRemoteAddr() + " : " + request.getRemotePort()+"<br> ");</font></span></p> <p class="MsoNormal"><span lang="EN-US"><font size="3"-->
<!--r />   out.println("<br> ID " + session.getId()+"<br> ");<br /> <br />   // </font></span><span><font size="3">如果有新的<span lang="EN-US"> Session </span>属性设置</font><span lang="EN-US"><br /> <font size="3">  String dataName = request.getParameter("dataName");<br />   if (dataName != null && dataName.length() > 0) {<br />      String dataValue = request.getParameter("dataValue");<br />      session.setAttribute(dataName, dataValue);<br />   }<br /> <br />   out.print("<b>Session </font></span><font size="3">列表</font><font size="3"><span lang="EN-US"></b>");<br /> <br />   Enumeration e = session.getAttributeNames();<br />   while (e.hasMoreElements()) {<br />      String name = (String)e.nextElement();<br />      String value = session.getAttribute(name).toString();<br />      out.println( name + " = " + value+"<br> ");<br />          System.out.println( name + " = " + value);<br />    }<br /> -->
   <form action="index.jsp" method="post">
     </form>

:
    

    值
名称 :
    

    
  
5.2.       应用配置
对于要进行负载均衡 3个tomcat目录下的webapps中的应用中的WEB-INF中的web.xml文件要添加如下一句配置
例如:
<!--l version="1.0" encoding="UTF-8-->

  TomcatDemo

配置后
<!--l version="1.0" encoding="UTF-8-->

  TomcatDemo
  
5.3.       打包部署
打包工程为 apa.war部署到Tomcat/webapps/下
 
6        测试
 到此负载均衡已配置完成。测试负载均衡先测试 apache, 能否正常访问,并查询其中的内容,有三个tomcat的相关配置信息和负载说明,
重新启动: apache 3 个tomcat
访问 http://180.200.1.189/apa/index.jsp
看是否能够运行能运行,则已建立负载均衡。
如果运行则会在界面上显示: worker1或者worker2或者worker3
如输出以下信息:
Server Info: null : 80
180.200.1.111 : -1
ID 93BD00088DA36F586566057A9BB7CCAB.worker1
 
 
7        备注
1.    覆盖 httpd服务
确认 linux以前安装的httpd(apache)不需要了,你可覆盖掉以前apache的httpd文件。
chkconfig --add httpd
2.    加入系统启动队列
使用 chkconfig命令把apachectl命令加入到系统启动队列中:
chkconfig --add httpd
3.    查看 apachectl的状态
chkconfig --list httpd
4.    常用命令作为参考
/etc/rc.d/init.d/httpd restart
/etc/rc.d/init.d/httpd start
/etc/rc.d/init.d/httpd stop
 
5.    系统命令
Service httpd restart
Service httpd stop
Service httpd start
 
6.    检查 apache进程
ps -ef|grep httpd
 
7.    检查 80端口是否在监听
netstat -atn|grep "LIST" |grep "80"
或者
netstat -apn|grep '\<80>'
 
8.    列出启动错误日志
service httpd -E / /  
检查 apache2.2.4所有配置文件是否有错误

# /usr/local/apache2.2/bin/apachectl –t

原文链接: http://www.dlog.cn/nicholascoder/diary/10742

你可能感兴趣的:(负载均衡Apache2.2.4-Tomcat5.5.17)