Linux系统实现Apache负载均衡

时间:2021-11-16 22:28:15

    因项目需要最近研究了下Linux 红帽 6.5下实现Apache负载均衡的问题。从干净的环境说起。

    1、安装JDK环境

        首先下载linux版本的JDK,我使用的是jdk-6u24-linux-x64-rpm.bin,并将该文件上传至服务器的指定目录。

        chmod 777 jdk-6u24-linux-x64-rpm.bin修改文件的操作权限;

        ./jdk-6u24-linux-x64-rpm.bin,解压JDK文件;

        rpm -ivh jdk-6u24-linux-x64-rpm,安装JDK;

        配置环境变量:vi /etc/profile,在其中添加以下内容:

      

        export JAVA_HOME=/usr/java/jdk1.6.0.24(其中你需要修改成你自己的安装目录)

        export JAVA_BIN=/usr/java/jdk1.6.0.24/bin(其中你需要修改成你自己的安装目录)

        export PATH=$PATH:$JAVA_HOME/bin

        export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

        export JAVA_HOME JAVA_BIN PATH CLASSPATH

        使用命令使文件修改立即生效:. /etc/profile,其中要注意.后面的空格。

    2、安装tomcat

        首先下载linux版本的tomcat,我使用的是apache-tomcat-6.0.43.tar.gz,并将该文件上传至服务器的指定目录。

        使用命令 tar -xf apache-tomcat-6.0.43.tar.gz解压tomcat文件;

        mv apache-tomcat-6.0.43 tomcat1;cp -r tomcat1 tomcat2 ;此操作的目的在于讲tomcat备份两个,以达到负载均衡。

        然后你可以自己在tomcat中放置测试文件来测试tomcat是否部署成功。

        如果你有两台Linux服务器,则只需将tomcat拷贝到另一台机器上,如果在一台服务器上完成负载均衡,则需要需要其中一个tomcat的端口,但是不可以占用80端口。

       备份conf/server.xml文件,并修改;

Linux系统实现Apache负载均衡

        两个tomcat都同样的修改该文件,并记录下AJP所对应的端口号,我这里是8009,在Apache负载时需要用到。

    3、安装Apache服务

        下载Apache的安装包及JK的包。我分别使用的是httpd-2.2.29.tar.gz及tomcat-connectors-1.2.40-src.tar.gz,上传至服务器;

        分别使用tar -xf 文件名进行解压操作;

        编译apache服务器:cd httpd-2.2.21 ,在httpd下./configure --enable-so --enable-mods-shared=most --with-mpm=worker,其中设置worker是修改其工作模式。worker是全新的支持多线程和多进程混合模型的MPM;

        使用make命令,开始编译;

        使用sudo make install命令,开始安装;

        进入到服务器的bin目录,启动服务:cd /usr/local/apache2/bin/         sudo ./apachectl start       

        在本地打开浏览器,访问http://127.0.0.1,如果出现“It Works!”,则表示启动成功了;

        如果要在其他的机器*问的话,要注意关闭Linux系统的防火墙;

    4、编译JK连接器

        进入到解压后的目录下的native目录:cd tomcat-connectors-1.2.40-src/native/;

        执行./configure --with-apxs=/usr/local/apache2/bin/apxs配置编译;

        使用make命令进行编译;

        其中在apache-2.0目录下,将看到本次编译生成的mod_jk.so模块,将其拷贝到Apache的modules目录下:在apache-2.0目录下执行该命令:

sudo cp ./mod_jk.so /usr/local/apache2/modules/;

    5、Apache服务配置

         将apache服务目录中conf下的httpe.conf文件备份到别的目录,并使用vi进行编辑;

        在LoadModle处增加:LoadModule jk_module modules/mod_jk.so;

        在<IfModule XXXX>的地方增加以下:

        <IfModule jk_module>
            JkWorkersFile conf/workers.properties
            JkMountFile conf/uriworkermap.properties
            JkLogFile logs/mod_jk.log
            JkLogLevel warn
        < /IfModule> 

       

        <IfModule worker.c> 

            StartServers            5 

            ServerLimit            20 

            ThreadLimit           200 

            MaxClients           4000 

            MinSpareThreads        25 

            MaxSpareThreads       250 

            ThreadsPerChild       200 

            MaxRequestsPerChild  1000 

         </IfModule>

         在conf下分别新建conf/workers.properties文件和conf/uriworkermap.properties,其内容分别是:

        Linux系统实现Apache负载均衡        Linux系统实现Apache负载均衡

        worker.s1.route的值即为server.xml中配置的JVMRoute的值。

        在测试时,出现访问tomcat中项目503的错误,此时需要需要httpd.conf文件中的权限。

        使用vi命令编辑httpd.conf文件,在

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Allow from all
</Directory> 中,将Deny from all改为Allow from all。并确保80端口及tomcat所使用的端口都不被防火前拦截。

 

至此所有的配置以完成。

先分别启动两个tomcat的服务,启动成功后,进入到apache的bin目录下启动apache服务,命令:sudo ./apachectl start。

在浏览器中访问apache服务所在的地址。例如http://ip/project/index.jsp,测试负载时,可以停掉一个tomcat服务看是否能正常访问,然后重启关闭的tomcat,并关闭另一个tomcat,看是否能正常访问。