(Load Balance) 由于现有网络的各个核心部分随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担。 在此情况下,如果扔掉现有设备去做大量的硬件升级,这样将造成现有资源的浪费,而且如果再面临下一次业务量的提升时,这又将导致再一次硬件升级的高额成本 投入,甚至性能再卓越的设备也不能满足当前业务量增长的需求。 针对此情况而衍生出来的一种廉价有效透明的方法以扩展现有网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性的技术就是负载均衡(Load Balance)。
<o:p> </o:p>
<o:p> </o:p>
1 环境说明<o:p></o:p>
1. 服务器有4台,一台内核的linux<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">2.6.9</st1:chsdate>安装apache,三台安装Tomcat。<o:p></o:p>
2. apache<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">2.2.4</st1:chsdate>、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地址。<o:p></o:p>
3. 下载地址为<o:p></o:p>
下载tomcat and apache<o:p></o:p>
http://apache.org<o:p></o:p>
下载jdk<o:p></o:p>
http://java.sun.com <o:p></o:p>
2 Tomcat安装<o:p></o:p>
1. 在三台要安装tomcat的服务器上先安装jdk<o:p></o:p>
2. 配置jdk的安装路径,在环境变量path中加入jdk的bin路径,新建环境变量JAVA_HOME指向jdk的安装路径<o:p></o:p>
3. 在三台要安装tomcat的服务器上分别安装tomcat,调试三个tomcat到能够正常启动<o:p></o:p>
4. 分别测试每个tomcat的启动是否正常
http://180.200.0.42:8080<o:p></o:p>
http://180.200.0.136:8080<o:p></o:p>
http://180.200.0.111:8080<o:p></o:p>
<o:p> </o:p>
3 Apache安装<o:p></o:p>
解压httpd-<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">2.2.4</st1:chsdate>.tar.gz
在那台要安装apache的服务器上安装apache2.2.4。在home下建立apache目录,把httpd-<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">2.2.4</st1:chsdate>.tar.gz上传到该目录下<o:p></o:p>
[root@localhost apache]# tar xvzf httpd-<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">2.2.4</st1:chsdate>.tar.gz<o:p></o:p>
[root@localhost apache]# cd httpd-<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">2.2.4</st1:chsdate>
配置APACHE安装文件<o:p></o:p>
这里需要注意编译前一定要将proxy proxy_http proxy_ftp proxy_connect headers这些参数加进去,以便编译出下面的so文件<o:p></o:p>
mod_proxy.so
mod_proxy_connect.so
mod_proxy_http.so
mod_proxy_ftp.so
mod_proxy_ajp.so
mod_proxy_balancer.so<o:p></o:p>
<o:p> </o:p>
配置编译参数<o:p></o:p>
[root@localhost apache]#./configure --prefix=/usr/local/apache224 --enable-so --enable-mods-shared="proxy proxy_http proxy_ftp proxy_connect headers"<o:p></o:p>
<o:p> </o:p>
编译
[root@localhost apache]# make<o:p></o:p>
检查编译后的是否有编译出so文件<o:p></o:p>
[root@localhost apache]# cd /usr/local/apache224/modules<o:p></o:p>
[root@localhost modules]#]# ls<o:p></o:p>
httpd.exp mod_proxy_ajp.so mod_proxy_connect.so mod_proxy_http.so<o:p></o:p>
mod_headers.so mod_proxy_balancer.so mod_proxy_ftp.so mod_proxy.so<o:p></o:p>
<o:p> </o:p>
如果存在以上文件则说明编译成功<o:p></o:p>
安装<o:p></o:p>
[root@localhost apache]# make install<o:p></o:p>
<o:p> </o:p>
启动APACHE
[root@localhost apache]# /usr/local/apache224/bin/httpd -k start<o:p></o:p>
测试<o:p></o:p>
http://180.200.1.189/<o:p></o:p>
如果输出IT works那么就ok了<o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
4 配置负载均衡<o:p></o:p>
4.1. Tomcat配置<o:p></o:p>
分别修改三个tomcat的配置文件conf/server.xml以便测试<o:p></o:p>
修改内容如下:
修改前
<!---->
<!---->
<!---->
<engine name="Catalina" defaulthost="localhost"></engine>
修改后
<!---->
<!---->
<engine name="Standalone" defaulthost="localhost" jvmroute="worker1"></engine>
<!---->
将其中的jvmRoute="jvm1"分别修改为jvmRoute="worker1"和jvmRoute=" worker2"和jvmRoute=" worker3"
然后重启三个tomcat,调试是否能够正常启动。<o:p></o:p>
http://180.200.0.42:8080<o:p></o:p>
http://180.200.0.136:8080<o:p></o:p>
http://180.200.0.111:8080<o:p></o:p>
<o:p></o:p>
4.2. Apache配置<o:p></o:p>
4.2.1. 启用代理<o:p></o:p>
<o:p> </o:p>
1. 配置代理模块<o:p></o:p>
<o:p> </o:p>
[root@localhost ~]#vi /usr/local/apache224/conf/httpd.conf<o:p></o:p>
查找代理是否打开<o:p></o:p>
/LoadModule proxy_module<o:p></o:p>
LoadModule proxy_module modules/mod_proxy.so<o:p></o:p>
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so<o:p></o:p>
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so<o:p></o:p>
如果被注释则需要打开注释,如果不存在则需要添加进去<o:p></o:p>
查找httpd-vhosts.conf<o:p></o:p>
/httpd-vhosts.conf<o:p></o:p>
# Include conf/extra/httpd-vhosts.conf<o:p></o:p>
打开注释<o:p></o:p>
保存退出<o:p></o:p>
:wq<o:p></o:p>
4.2.2. 配置代理主机<o:p></o:p>
[root@localhost ~]#vi /usr/local/apache224/conf/extra/httpd-vhosts.conf<o:p></o:p>
#注释掉以下所有行<o:p></o:p>
<virtualhost></virtualhost><o:p></o:p>
ServerAdmin webmaster@dummy-host.www.serviceapache.com<o:p></o:p>
DocumentRoot /www/docs/dummy-host.www.serviceapache.com<o:p></o:p>
ServerName dummy-host.www.serviceapache.com<o:p></o:p>
ServerAlias www.dummy-host.www.serviceapache.com<o:p></o:p>
ErrorLog logs/dummy-host.www.serviceapache.com-error_log<o:p></o:p>
CustomLog logs/dummy-host.www.serviceapache.com-access_log common<o:p></o:p>
<o:p></o:p>
<virtualhost></virtualhost><o:p></o:p>
ServerAdmin webmaster@dummy-host2.www.serviceapache.com<o:p></o:p>
DocumentRoot /www/docs/dummy-host2.www.serviceapache.com<o:p></o:p>
ServerName dummy-host2.www.serviceapache.com<o:p></o:p>
ErrorLog logs/dummy-host2.www.serviceapache.com-error_log<o:p></o:p>
CustomLog logs/dummy-host2.www.serviceapache.com-access_log common<o:p></o:p>
<o:p></o:p>
#添加以下信息<o:p></o:p>
<virtualhost></virtualhost><o:p></o:p>
ServerName localhost<o:p></o:p>
CustomLog logs/dmim_log combined<o:p></o:p>
<proxy localhost=""></proxy>
<o:p></o:p>
BalancerMember ajp://180.200.1.111:9109<o:p></o:p>
BalancerMember ajp://180.200.0.42:8009<o:p></o:p>
BalancerMember ajp://180.200.0.136:9309<o:p></o:p>
BalancerMember ajp://180.200.1.189:8009<o:p></o:p>
<o:p></o:p>
<location></location><o:p></o:p>
ProxyPass balancer://localhost/<o:p></o:p>
<o:p></o:p>
<o:p></o:p>
#保存退出<o:p></o:p>
:wq<o:p></o:p>
<o:p> </o:p>
5 部署<o:p></o:p>
5.1. 编写测试代码<o:p></o:p>
在三个tomcat的安装目录中的webapps建立相同的应用,我和应用目录名为apa,在三个应用目录中建立相同 WEB-INF目录和页面index.jsp,index.jsp的页面内容如下
<!---->
<!---->
Server Info:
<!---->
<!---->
<o:p></o:p>
:
值
:
名称
5.2. 应用配置<o:p></o:p>
对于要进行负载均衡3个tomcat目录下的webapps中的应用中的WEB-INF中的web.xml文件要添加如下一句配置
<distributable></distributable><o:p></o:p>
例如:<o:p></o:p>
<!---->
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemalocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"></web-app>
<display-name></display-name>TomcatDemo
配置后
<!---->
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemalocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"></web-app>
<display-name></display-name>TomcatDemo
<distributable></distributable>
<o:p></o:p>
5.3. 打包部署<o:p></o:p>
打包工程为apa.war部署到Tomcat/webapps/下<o:p></o:p>
<o:p> </o:p>
6 测试<o:p></o:p>
到此负载均衡已配置完成。测试负载均衡先测试apache, 能否正常访问,并查询其中的内容,有三个tomcat的相关配置信息和负载说明,<o:p></o:p>
重新启动:apache 3 个tomcat<o:p></o:p>
访问http://180.200.1.189/apa/index.jsp<o:p></o:p>
看是否能够运行能运行,则已建立负载均衡。<o:p></o:p>
如果运行则会在界面上显示:worker1或者worker2或者worker3<o:p></o:p>
如输出以下信息:<o:p></o:p>
Server Info: null : 80
180.200.1.111 : -1
ID 93BD00088DA<st1:chmetcnv w:st="on" tcsc="0" unitname="F" sourcevalue="36" numbertype="1" negative="False" hasspace="False">36F</st1:chmetcnv><st1:chmetcnv w:st="on" tcsc="0" unitname="a" sourcevalue="586566057" numbertype="1" negative="False" hasspace="False">586566057A</st1:chmetcnv>9BB7CCAB.worker1<o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
7 备注<o:p></o:p>
1. 覆盖httpd服务<o:p></o:p>
确认linux以前安装的httpd(apache)不需要了,你可覆盖掉以前apache的httpd文件。
chkconfig --add httpd<o:p></o:p>
2. 加入系统启动队列<o:p></o:p>
使用chkconfig命令把apachectl命令加入到系统启动队列中:<o:p></o:p>
chkconfig --add httpd<o:p></o:p>
3. 查看apachectl的状态<o:p></o:p>
chkconfig --list httpd<o:p></o:p>
4. 常用命令作为参考<o:p></o:p>
/etc/rc.d/init.d/httpd restart<o:p></o:p>
/etc/rc.d/init.d/httpd start<o:p></o:p>
/etc/rc.d/init.d/httpd stop<o:p></o:p>
<o:p> </o:p>
5. 系统命令<o:p></o:p>
Service httpd restart<o:p></o:p>
Service httpd stop<o:p></o:p>
Service httpd start<o:p></o:p>
<o:p> </o:p>
6. 检查apache进程<o:p></o:p>
ps -ef|grep httpd<o:p></o:p>
<o:p> </o:p>
7. 检查80端口是否在监听<o:p></o:p>
netstat -atn|grep "LIST" |grep "80"
或者
netstat -apn|grep '\<80\>'
<o:p> </o:p>
8. 列出启动错误日志<o:p></o:p>
service httpd -E /路径/文件名
<o:p> </o:p>
检查apache<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">2.2.4</st1:chsdate>所有配置文件是否有错误<o:p></o:p>
# /usr/local/apache2.2/bin/apachectl –t<o:p></o:p>
分享到:
相关推荐
在"apache_2.2.4-win32-x86-no_ssl"这个压缩包中,主要包含的是安装程序文件"apache_2.2.4-win32-x86-no_ssl.msi"。 Apache HTTP Server 2.2.4 的特点: 1. 开源:Apache是开放源代码软件,允许用户自由地使用、...
"vlc-2.2.4-win32.rar"是该播放器的一个特定版本,适用于32位Windows操作系统。这个压缩包包含了VLC 2.2.4的可执行文件,即"vlc-2.2.4-win32.exe",用户可以下载解压后直接运行安装。 VLC Media Player的特点和功能...
2. **解压文件**:首先需要解压缩下载的`GDAL-2.2.4-cp27-cp27m-win_amd64.zip`文件,这将得到`GDAL-2.2.4-cp27-cp27m-win_amd64.whl`文件。 3. **设置Python环境**:确保你的Python环境已经安装了pip,这是Python...
ruby在windows下的安装包rubyinstaller-2.2.4-x64
pymssql-2.2.4-cp38-cp38-win_amd64.whl
总之,Apache 2.2.4-win32版是Windows 32位环境下的强大Web服务器,其模块化设计和配置灵活性使得它成为开发和部署Web应用的理想选择。虽然不包含SSL支持,但通过适当的配置和模块添加,仍能实现安全的HTTPS连接。
这里的"apache_2.2.4-win32-x86-no_ssl.msi"指的是Apache服务器的特定版本,即2.2.4,适用于32位Windows系统,并且不包含SSL(Secure Sockets Layer)支持。这表明该安装包主要用于搭建不涉及HTTPS加密传输的网站...
pymssql-2.2.4-cp38-cp38-win_amd64
下载请校验文件Hash: ...sha512sum hbase-2.2.4-bin.tar.gz 214fcc1ca7d4e70bffdaa41fe9e55a3a5c492ead7e02680d901481d124bd9ec279035f05b1f88ebd4bcdba67c8ecdf9f093cefcaecd8e211b7ec842149517a8d
首先,明确我们的目标是创建一个由Apache作为HTTP服务器前端,后端连接多台Tomcat服务器的架构,实现负载均衡。同时,我们还需要设定Session超时时间和屏蔽特定文件列表,确保系统的安全与高效运行。本教程以单机...
1. 解压缩文件,会得到一个名为"pymysql-2.2.4-cp38-cp38-win_amd64.whl"的文件,这是Python的wheel格式文件,是预先编译好的二进制包,适用于Python 3.8版本且操作系统为64位Windows。 2. 打开命令行窗口,切换到...
pymssql-2.2.4-cp38-cp38-win32.whl
标题中的"ide-eval-resetter-2.2.4-4959c6.zip"表明这是一款名为"Ide-Eval-Resetter"的软件工具的压缩包,版本号为2.2.4,其中的"4959c6"可能是这个特定版本的标识符或者是构建号。这款工具主要的功能是重置试用期,...
压缩包内的“apache_2.2.4-win32-x86-no_ssl.msi”是一个Microsoft Installer (MSI) 文件,这是Windows平台上的安装程序包,用户可以通过双击该文件来安装Apache服务器。安装过程中,系统会引导用户配置诸如端口号、...
本文将深入探讨Snipaste 2.2.4 Beta x64版本的功能、特点以及如何利用其提升工作效率。 首先,Snipaste的核心功能——截图。它提供了多种截图模式,包括全屏、窗口、矩形、圆形以及自由形状等,满足用户在不同场景...
这是一个IIS的AspNetCoreHosting模块,安装之后可以在IIS上部署.NetCore的程序.目前是最新的NetCore2.2.4版本.欢迎下载.
官网下载速度慢,matplotlib-2.2.4-cp27-cp27m-win32.whl。。。。。
官网下载很慢,我之前走了很多弯路,下载了很多轮子,供大家参考。 这是适配python2.7,32位的GDAL
GDAL-2.2.4-cp34-cp34m-win_amd64.whl