热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Apache+Tomcat*2集群负载平衡(Linux环境)

Apache+Tomcat*2集群负载平衡(Linux环境)说明:一台apache主机,两台tomcat主机安装JDK、安装Apache、安装Tomcat、配置Apache代理、配置Tomca

 

Apache + Tomcat*2集群 负载平衡(Linux环境)

说明:一台apache主机,两台tomcat主机

安装JDK、安装Apache、安装Tomcat、配置Apache代理、配置Tomcat集群

一、安装JDK(所有运行Tomcat主机,即web服务器)
  1.下载JDK的bin包,如jdk-1_5_0_02-linux-i586.rpm.bin ,给其添加执行权限,执行#./jdk-1_5_0_02-linux-i586.rpm.bin , 在

当前目录生成rpm安装包,同样给其添加执行权限。 再执行 #rpm -ivh jdk-1_5_0_02-linux-i586.rpm 出现安装协议 按接受

即可。
  2.设置环境变量 #vi /etc/profile  在其最后加入

        JAVA_HOME =/ usr / java / jdk1. 5 .0_02
        CLASSPATH
= .:$JAVA_HOME / lib:$JAVA_HOME / jre / lib
        PATH
= $PATH:$JAVA_HOME / bin:$JAVA_HOME / jre / bin
        export JAVA_HOME CLASSPATH PATH

     保存退出

  3.要使JDK在所有的用户中使用,可以这样:vi /etc/profile.d/java.sh在新的java.sh中输入以下内容:
        #set java environment
        JAVA_HOME=/usr/java/jdk1.5.0_02
        CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
        PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
        export JAVA_HOME CLASSPATH PATH
     保存退出,然后给java.sh分配权限:chmod 755 /etc/profile.d/java.sh

二、安装Apache(访问代理主机)
  1.下载apache源代码 http://archive.apache.org/dist/httpd/httpd-2.2.2.tar.gz

 解压缩 tar fvxz httpd-2.2.2.tar.gz

  2.进入解压后的目录。进行配置:

. / configure  -- prefix =/ usr / apache  -- enable - module = most  -- enable - proxy  -- enable - proxy - ajp  -- enable - forward  -- enable - proxy - connect  -- enable - proxy - http  -- enable - so  -- enable - deflate  -- enable - headers  -- enable - include

上面的配置,用到了其他一些模块,说不定以后会用到,如支持ssi的include模块。

  3.编译(编译如果不成功,确认一下你的linux是否安装有编译所需要的c环境和其他需要的类库)
    make

  4.安装 make install


  5.进入/usr/apache目录,运行apache  ./apachectl -k start

      运行apache后,浏览一下是否运行正常。

    关闭apache ./apachectl -k stop


   6.把apache作为linux的启动就运行服务程序
     执行如下操作:cp /usr/apache/bin/apachectl /etc/rc.d/init.d/httpd
     确认linux以前安装的httpd(apache)不需要了,你可覆盖掉以前apache的httpd文件。
     chkconfig --add httpd
     运行linux的setup,把httpd服务默认设定为自动运行。
     到现在,你就可用另一种方式来启动、关闭apache了。如service httpd start


三、安装tomcat(Web服务器)
    1.下载jakarta-tomcat-5.5.20.tar.gz
      tar zxf jakarta-tomcat-5.5.20.tar.gz 解压文件 (如解压到/usr/local/)
    2.设置环境变量 #vi /etc/profile  添加
  CATALINA_HOME=/usr/local/jakarta-tomcat-5.5.30
  export CATALINA_HOME
      保存退出

    3.修改JVM内存:/bin/catalina.sh 文件
        在下# ----- Execute The Requested Command -----------------
            # Bugzilla 37848: only output this if we have a TTY
              if [ $have_tty -eq 1 ]; then
                 echo "Using CATALINA_BASE:   $CATALINA_BASE"
                 echo "Using CATALINA_HOME:   $CATALINA_HOME"
                 echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR"
                if [ "$1" = "debug" -o "$1" = "javac" ] ; then
                    echo "Using JAVA_HOME:       $JAVA_HOME"
                else
                   echo "Using JRE_HOME:       $JRE_HOME"
                fi
               fi
            添加以下内容:

                CATALINA_OPTS = " $CATALINA_OPTS -Xms256m -Xmx512m -XX:PermSize=32m  -XX:MaxPermSize=128m $JPDA_OPTS "

                JAVA_OPTS
= " $JAVA_OPTS -Djava.awt.headless=true "

                echo 
" Using CATALINA_OPTS: $CATALINA_OPTS "

                echo 
" Using JAVA_OPTS: $JAVA_OPTS "


    4.运行/usr/local/jakarta-tomcat-5.5.30/bin/startup.sh 启动tomcat服务器 测试是否正常
   
  

四、配置apache代理(适用mod_proxy_ajp.so)
    编辑apache配置文件 #vi /usr/apache/conf/httpd.conf
    1.配置proxy_ajp
 #加载解析模块(windows下,或linux采用动态加载模式下需配置。前面我们的linux编译时把下面的模块嵌入到了apache中 

       ,所以不用再加载)
 LoadModule proxy_module modules/mod_proxy.so
 LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
    2.配置文件添加

 ProxyPass  /  balancer: // tomcatcluster/ lbmethod=byrequests stickysession=JSESSIONID nofailover=on timeout=5  maxattempts = 3
 ProxyPassReverse 
/  balancer: // tomcatcluster/

 
< Proxy balancer: // tomcatcluster >
    BalancerMember ajp: // 192.168.40.15:8009 smax=2 loadfactor=1  route=tomca t1
    BalancerMember ajp: // 192.168.71.106:8009 smax=2 loadfactor=2  route=tomc at2
  Proxy >

 

        以上说明请参见mod_proxy中文手册 http://www.6bee.com/tech/ApacheMenu/mod/mod_proxy.html
    3.其他说明

 1、apache对tomcat的支持历史:apache第2.1版本后,内置了proxy_ajp,而jk2已经没人开发了,jk则支持到apache的

2.0.58版本。
proxy_ajp配置较简单,但可配置性还不如jk2,主要表现在proxy_ajp目前只支持配置到目录,还不支持对文件名称的pattern模式匹

配(即还不能定义到只对jsp文件起作用)。

 2、因为proxy_ajp的配置,还不支持对文件名称的pattern模式匹配,所以你要特别注意:
——尽量把jsp和静态文件和图片路径分不同的目录来管理;
——对于静态文件和图片路径,如/images,你可用“ProxyPass /images !”来禁止ProxyPass,从而来让apache来直接处理图片的请

求。
——关于apache的ssi(即shtml,include)与tomcat的集成时,shtml文件不能处于ProxyPass的控制下(即不能在ProxyPass目录)

,而shtml调用的jsp须在ProxyPass有效控制下;


五、配置Tomcat负载均衡、集群
    1.修改tomcat 的 conf/server.xml 的     
    去掉注释
        jvmRoute是tomcat路由标示,由此区分两台tomcat主机,那么第二台就改为
            jvmRoute="tomcat2">
    加上注释
   
    2.修改tomcat 的 conf/server.xml 的 
    去掉注释               enableLookups="false" redirectPort="8443" debug="0"
               protocol="AJP/1.3" />
   

    3.修改tomcat 的 conf/server.xml 的   

   

把上面的注释拿掉 就ok 了!

4.在每个webapps应用中,修改web.xml文件 添加元素

最后完工,重启tomcat,apahce测试平衡负载,新建jsp页面
<%
Runtime lRuntime = Runtime.getRuntime();
out.println("*** BEGIN MEMORY STATISTICS ***
");
out.println("Free  Memory: "+lRuntime.freeMemory()/1024/1024+"M
");
out.println("Max   Memory: "+lRuntime.maxMemory()/1024/1024+"M
");
out.println("Total Memory: "+lRuntime.totalMemory()/1024/1024+"M
");
out.println("Available Processors : "+lRuntime.availableProcessors()+"
");
out.println("*** END MEMORY STATISTICS ***");
%>


<%= request.getSession().getId() %>
放入到两台tomcat的ROOT目录中测试

再测试集群(session复制)


推荐阅读
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文详细介绍了解决全栈跨域问题的方法及步骤,包括添加权限、设置Access-Control-Allow-Origin、白名单等。通过这些操作,可以实现在不同服务器上的数据访问,并解决后台报错问题。同时,还提供了解决second页面访问数据的方法。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 本文介绍了禅道作为一款国产开源免费的测试管理工具的特点和功能,并提供了禅道的搭建和调试方法。禅道是一款B/S结构的项目管理工具,可以实现组织管理、后台管理、产品管理、项目管理和测试管理等功能。同时,本文还介绍了其他软件测试相关工具,如功能自动化工具和性能自动化工具,以及白盒测试工具的使用。通过本文的阅读,读者可以了解禅道的基本使用方法和优势,从而更好地进行测试管理工作。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
  • 在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的步骤和方法
    本文介绍了在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的详细步骤和方法。首先需要下载最新的Java SE Development Kit 9发行版,然后按照给出的Shell命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • 前端性能优化无损压缩webp格式的图片
    一、什么是webpWebP格式,谷歌开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有JPEG的23,并能节省大量的服务器宽带资源和数据空 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
author-avatar
悟哩兰荷_982
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有