`
sealbird
  • 浏览: 584670 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

apache2.2 tomcat6.0 负载均衡集群整理配置

阅读更多
worker.list=controller,tomcat1,tomcat2  #server 列表
#========tomcat1========
worker.tomcat1.port=8009         #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcat1.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 1   #server的加权比重,值越高,分得的请求越多
#========tomcat2========
worker.tomcat2.port=8010       #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcat2.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1   #server的加权比重,值越高,分得的请求越多
#========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2   #指定分担请求的tomcat
worker.controller.sticky_session=1



workers.tomcat_home=D:\tomcat6.0.18_clusterone #让mod_jk模块知道Tomcat的位置
workers.java_home=D:\Java\jdk1.6.0\jre #让mod_jk模块知道jre的位置
ps=\

worker.list=tomcat1 #server 列表,tomcat2,controller
#========tomcat1========
worker.tomcat1.port=8009         #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcat1.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1   #server的加权比重,值越高,分得的请求越多
#========tomcat2========
#worker.tomcat2.port=8010       #ajp13 端口号,在tomcat下server.xml配置,默认8009
#worker.tomcat2.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址
#worker.tomcat2.type=ajp13
#worker.tomcat2.lbfactor=1   #server的加权比重,值越高,分得的请求越多
#========controller,负载均衡控制器========
#worker.controller.type=lb
#worker.controller.balanced_workers=tomcat1,tomcat2   #指定分担请求的tomcat 这里 balanced写错了,应是 balance
#worker.controller.sticky_session=1



workers.tomcat_home=D:\tomcat6.0.18_clusterone #让mod_jk模块知道Tomcat的位置
workers.java_home=D:\Java\jdk1.6.0\jre #让mod_jk模块知道jre的位置
ps=\
worker.list=ajp13 #模块版本
worker.ajp13.port=8009 #工作端口,若没占用则不用修改
worker.ajp13.host=localhost #本机,若上面的Apache主机不为localhost,作相应修改
worker.ajp13.type=ajp13 #类型
worker.ajp13.lbfactor=1 #代理数,不用修改



===========================正确配置=======================
前期准备

下载mod_jk-1.2.28-httpd-2.2.3.so
http://apache.justdn.org/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.28/mod_jk-1.2.28-httpd-2.2.3.somod_jk-1.2.28-httpd-2.2.3.so
下载 Apache2.2
下载 tomcat6

环境
现在的环境,是在同一台机器中配置 一个apache ,两个tomcat

1\
apache http.conf
       在文件尾增加
         LoadModule jk_module modules\mod_jk-1.2.28-httpd-2.2.3.so
JkWorkersFile "D:\Apache2.2\conf\workers.properties"
JkMount /*.jsp controller
JkLogFile "D:\Tomcat 6.0\logs\mod_jk2.log"
JkLogLevel info

2\
新建workers.properties,并把workers.properties也放在D:\Apache2.2\conf\workers.properties目录下
并在文件中增加如下内容
        worker.list=controller,tomcatone,tomcattwo #server 列表,tomcat2,controller
#========tomcat1========
worker.tomcatone.port=8009         #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcatone.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcatone.type=ajp13
worker.tomcatone.lbfactor=1   #server的加权比重,值越高,分得的请求越多
#========tomcat2========
worker.tomcattwo.port=8010       #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcattwo.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcattwo.type=ajp13
worker.tomcattwo.lbfactor=1   #server的加权比重,值越高,分得的请求越多
#========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.balance_workers=tomcatone,tomcattwo   #指定分担请求的tomcat   这里 balanced写错了,应是 balance
worker.controller.sticky_session=1

3\如果在同一台机,增加两个Tomcat服务
          a:D:\tomcat6.0.18_clusterone
  b:D:\tomcat6.0.18_clustertwo
  c修改,a与b中的内容

    a:中的相应内容为
      

      第二处:<Connector port="8086" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"/>
                 原来为
<Connector port="8086" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

              第三处:<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcatone">
         原来为
<Engine name="Catalina" defaultHost="localhost"> (注:其实这行原来存在,只是把其注释掉)


    b:中的相应内容为
      第一处:<Server port="8007" shutdown="SHUTDOWN">=====原来为====><Server port="8006" shutdown="SHUTDOWN">

      第二处:<Connector port="8087" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"/>
                 原来为
<Connector port="8086" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

              第三处:<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcattwo">
         原来为
<Engine name="Catalina" defaultHost="localhost"> (注:其实这行原来存在,只是把其注释掉)

4\ 增加虚似目录(注,把"1\"中的 "JkMount /*.jsp controller" 注释掉 )

<VirtualHost *:8089>
    ServerAdmin seal_bird21th@sohu.com
    DocumentRoot d:/www/wabappone/ROOT
    ServerName www.wabappone.com 
    ServerAlias wabappone
    ErrorLog "logs/wabappone.localhost-error.log"
    CustomLog "logs/wabappone.localhost-access.log" common
    JkMount /*.jsp controller 
    # 把JSPX程序映射到Jk连接器上
    JkMount /*.jspx controller
    # 把servlet程序映射到Jk连接器上
    JkMount /servlet/* controller
    JkMount /*.servlet controller
</VirtualHost>




==================================
注:apache与tomcat本来就能正常使用的前提下
==================================

能过以上四步负载作用了






============测试jsp文件====把下面内容保存成test.jsp文件并copy到相应目录下========================
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*" %>
<html><head><title>Cluster App Test</title></head>
<body>
Server Info:
<%
out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%>
<%
  out.println("<br> ID " + session.getId()+"<br>");

  // 如果有新的 Session 属性设置
  String dataName = request.getParameter("dataName");
  if (dataName != null && dataName.length() > 0) {
     String dataValue = request.getParameter("dataValue");
     session.setAttribute(dataName, dataValue);
  }

  out.print("<b>Session 列表</b>");

  Enumeration e = session.getAttributeNames();
  while (e.hasMoreElements()) {
     String name = (String)e.nextElement();
     String value = session.getAttribute(name).toString();
     out.println( name + " = " + value+"<br>");
         System.out.println( name + " = " + value);
   }
%>
  <form action="test.jsp" method="POST">
    名称:<input type=text size=20 name="dataName">
     <br>
    值:<input type=text size=20 name="dataValue">
     <br>
    <input type=submit>
   </form>
</body>
</html>

==============================================================================================

5\
  在tomcat中的conf目录下的server.xml文件增加以下内容
     把 server.xml中注释部分 <!--   <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>-->   替换成如下内容
  ==========================================================================
   <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"   
                     channelSendOptions="8">    
              <!--      
                  
              <Manager className="org.apache.catalina.ha.session.BackupManager"   
                        expireSessionsOnShutdown="false"   
                       notifyListenersOnReplication="true"   
                       mapSendOptions="8"/> -->    
             <!--   -->    
             <Manager className="org.apache.catalina.ha.session.DeltaManager"   
                      expireSessionsOnShutdown="false"   
                      notifyListenersOnReplication="true"/>    
      
             <Channel className="org.apache.catalina.tribes.group.GroupChannel">    
               <Membership className="org.apache.catalina.tribes.membership.McastService"   
                           address="228.0.0.4"   
                            port="45564"   
                           frequency="500"   
                           dropTime="3000"/>    
               <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"   
                         address="auto"   
                         port="4000"   
                         autoBind="100"   
                         selectorTimeout="5000"   
                         maxThreads="6"/>    
               <!-- timeout="60000"-->    
               <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">    
                 <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender" />    
               </Sender>    
               <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>    
               <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>    
               <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>    
             </Channel>    
      
             <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>    
             <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>    
             <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>    
             <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>    
           </Cluster> 

  ==========================================================================

6\
  站点web.xml中加入 <distributable/>,distributable元素来告诉servlet/JSP容器,编写将在分布式Web容器中部署的应用



=====================
以上配置经测试,情况如下
  1\在ie中运行 test.jsp
   出现
    Server Info: null : 8089
    ID B4D24ADB547DEAAE02B35CC72A2BC147.tomcatone
    Session 列表asfdasdf = asdf
不断的刷,仍显示的是 "ID B4D24ADB547DEAAE02B35CC72A2BC147.tomcatone",说明没有变,
但我把 tomcattwo这个tomcat站点关掉时
   出现
   Server Info: null : 8089
   ID B4D24ADB547DEAAE02B35CC72A2BC147.tomcattwo
   Session 列表asfdasdf = asdf
这时就变了,为什么一定要关掉一个服务才能执行test.jsp时,结果才能变呢(即自动在两个站点间切换以达以分流负载均衡作用)
现在的环境,是在一台机器中配置 一个apache ,两个tomcat

2\如果新开ie,则session ID会变了,说明配置成功

===============================================================================================================================
注意: 对于webservice 的集群,特别要注意 CommonBusiness.wsdl 中的
         <wsdl:port binding="impl:CommonBusinessSoapBinding" name="CommonBusiness">
             <wsdlsoap:address location="http://www.jobservice.com:8089/JobService/services/CommonBusiness"/>
         </wsdl:port>
此处要与apache http 中的httpd-vhosts.conf  的端口一致,并且需增加如下行
JkMount /JobService/services/CommonBusiness controller ()
===============================================================================================================================



=====================
===================================================
===================================================
=============  更深入的配置方式(集群)===============
===================================================
===================================================

先配置成可扩散的服务,以可以灵活的增加数据处理服务端(数据处理服务端往往压大)



windows环境下安装myphpadmin

1\php5
 
  得到 php.ini文件(在D:\php5目录下有一个这样的文件,只需改一下名字就ok)
  增加环境变量(在path环境变量中增加) d:\php5;d:\php5\ext
  php.ini在实际应用中要做相应修改
2\apache 中的http.conf的修改
   a:
    在 #LoadModule vhost_alias_module modules/mod_vhost_alias.so 后面加上以下两行
LoadModule php5_module d:/php5/php5apache2_2.dll
        PHPIniDir "d:/php5"

   b:修改http.conf相应位置
       <Directory "D:/www">
  Options Indexes FollowSymLinks
  AllowOverride None
  Order allow,deny
   Allow from all
</Directory>
   c:
      在 AddType application/x-gzip .gz .tgz后面加上以下两行
AddType application/x-httpd-php .php
        AddType application/x-httpd-php .html

   d:增加 index.php
<IfModule dir_module>
    DirectoryIndex index.html index.jsp index.php
</IfModule>


   e:
      #Include conf/extra/httpd-vhosts.conf 中的"#"去除
      修改httpd-vhosts.conf文件为如下内容
#
# Use name-based virtual hosting.
#
NameVirtualHost *:8089

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#

<VirtualHost *:8089>
   ServerAdmin seal_bird21th@sohu.com
   DocumentRoot d:/www/wabappone/ROOT
   ServerName www.wabappone.com 
   ServerAlias wabappone
   ErrorLog "logs/wabappone.localhost-error.log"
   CustomLog "logs/wabappone.localhost-access.log" common
    JkMount /*.jsp controller 
# 把JSPX程序映射到Jk连接器上
JkMount /*.jspx controller
  # 把servlet程序映射到Jk连接器上
JkMount /servlet/* controller
JkMount /*.servlet controller
</VirtualHost>

3\
       phpmyadmin的安装配置

     打开phpmyadmin 目录中的 config.inc.php 找到以下这些:

     $cfg[’PmaAbsoluteUri’] = ’http://localhost/phpmyadmin’; //假设是有域名的服务器,可改成http://域名/phpmyadmin

     $cfg[’Servers’][$i][’user’] = ’admin’;

     $cfg[’Servers’][$i][’password’] = ’00000000’; //分别填上你mysql的用户和密码

     $cfg[’Servers’][$i][’auth_type’] = ’http’; // 这里也可以改为cookie

     改好了保存,在浏览器打开http://localhost/phpmyadmin (/index.php)输入你的用户名和密码,便可以管理mysql了.


4\修改
  d:\php5\php.ini
  把如下四行中的";"去掉
  ;extension=php_mcrypt.dll
  ;extension=php_msql.dll
  ;extension=php_mssql.dll
  ;extension=php_mysql.dll
  ;extension=php_mysqli.dll
  ;extension=php_mbstring.dll






  ====================================
  url rewrite
  ====================================



1、在 httpd.conf 中搜索 LoadModule rewrite_module,将该行前面的 # 号删除。
2、将下面的内容加入在</VirtualHost>之前
  <IfModule mod_rewrite.c>
     RewriteEngine On
     RewriteRule ^(.*)/testrewrite.html$                $1/index.php
  </IfModule>

技巧:
果在httpd中打开调用rewrite_module的设置,查看一下是不是能调用了,要通过 httpd -M的参数来查看;
#/usr/sbin/httpd -M



==================================
======支持php的基本配置步骤==========
==================================
==================================
配置支持php的步骤
首先要下载
apache2.2
php5

1\
  在php5目录下找到php.ini文件,查看解压缩后的文件夹内容,找到“php.ini-dist”文件,将其重命名为“php.ini”,打开编辑,找到下面图中的地方, Ln385,有一个“register_globals = Off”值,这个值是用来打开全局变量的,比如表单送过来的值,如果这个值设为“Off”,就只能用“$_POST['变量名']、$_GET['变量名 ']”等来取得送过来的值,如果设为“On”,就可以直接使用“$变量名”来获取送过来的值,当然,设为“Off”就比较安全,不会让人轻易将网页间传送的数据截取。这个值是否改成“On”就看自己感觉了,是安全重要还是方便重要?

2\——在“我的电脑”上右键,“属性”,选择“高级”标签,点选“环境变量”,在“系统变量”下找到“Path”变量,选择,双击或点击“编辑”,将“;D:\php;D:\php\ext”加到原有值的后面,当然,其中的“D:\php” 是我的安装目录,你要将它改为自己的php安装目录
E:\DEDECMS\php5;E:\DEDECMS\php5\ext
3\
加入到#LoadModule vhost_alias_module modules/mod_vhost_alias.so 后面
LoadModule php5_module E:/DEDECMS/php5/php5apache2_2.dll
PHPIniDir "E:/DEDECMS/php5"
4\
AddType application/x-httpd-php .php
AddType application/x-httpd-php .html

/index.html出现
出现 Parse error: syntax error, unexpected T_STRING
取消  AddType application/x-httpd-php .html 这句就ok了,真tmd怪了

发现与php.ini 中的 ;extension=php_mbstring.dll 这行取消";"有关
要么取消http.conf中
AddType application/x-httpd-php .html
或php.ini中的改为
;extension=php_mbstring.dll
则正常运行

====================================
参看 http://www.idouye.com 爱豆叶资料分享
分享到:
评论

相关推荐

    Apache2.2 tomcat-6.0.18负载均衡与集群

    总结起来,"Apache2.2 tomcat-6.0.18负载均衡与集群"是一个复杂但关键的架构,涉及到Apache的mod_proxy和mod_jk模块,以及Tomcat的集群配置。这个主题涵盖了如何利用这些工具和技术创建一个高可用、高性能的Web服务...

    apache2.2 tomcat6.0 集群与负载均衡

    总结来说,Apache 2.2 与 Tomcat 6.0 集群和负载均衡的配置是一项复杂但至关重要的任务,涉及到服务器复制、会话共享、负载均衡策略以及故障恢复等多个环节。通过精心设计和实施,可以构建出稳定、高效的Web服务环境...

    apache2.2+tomcat6.0负载均衡配置软件

    Apache 2.2 和 Tomcat 6.0 的负载均衡配置是提高Web应用程序性能和可扩展性的重要技术。在高流量环境下,通过将工作负载分散到多个Tomcat实例上,可以确保服务的稳定性和响应速度,同时避免单一服务器过载。下面我们...

    Apache2.2+tomcat6.0搭建负载均衡服务器

    Apache2.2与Tomcat6.0的组合可以构建一个高效、可靠的负载均衡服务器系统,以分散客户端请求到多个后端应用服务器,提高整体服务的可用性和响应速度。以下是搭建和配置的关键步骤及知识点: 1. **Apache2.2安装配置...

    Windows下整合Apache2.2和Tomcat6.0 集群与负载均衡——亲测

    Windows下整合Apache2.2和Tomcat6.0 集群与负载均衡,本人亲测可用,已经使用到企业应用开发中,长期以来未出现任何问题,内容详尽,即使小白也是一看即懂、

    Apache和Tomcat集群配置步骤(Apache2.2,Tomcat6.0).

    ### Apache和Tomcat集群配置详解 #### 一、软件准备 在进行Apache和Tomcat集群配置之前,首先需要准备所需的软件资源。 - **Apache 2.2**: - Windows平台: 从官方网站 [http://httpd.apache.org/download.cgi]...

    apache-tomcat6.0

    最后,对于大型或高并发的生产环境,通常会考虑使用负载均衡、集群和反向代理等高级配置,以提高系统的可扩展性和可用性。例如,可以结合Nginx作为前端反向代理服务器,将请求分发到多个Tomcat实例,实现负载均衡。 ...

    tomcat6_apache2.2_ajp 负载均衡加集群实战分享

    以上知识点总结了文档中提到的关于Tomcat6和Apache2.2实现负载均衡和集群的核心概念、组件、配置方法以及可能遇到的问题和解决方案。这些知识点对于希望在Linux环境中部署Tomcat集群的IT专业人员来说非常有价值。

    apache+tomcat负责均衡和集群配置手册

    本文将深入解析如何通过配置Apache和Tomcat实现负载均衡和集群化,从而提升系统的稳定性和响应速度。 #### 一、准备工作 首先,我们需要准备必要的软件: - **Apache**: 下载适合Windows平台的Apache安装包`...

    apache 2.2.15 +tomcat 6.0 同一台机器集群

    本教程将探讨如何在一台机器上配置Apache 2.2.15与Tomcat 6.0的集群,以实现负载均衡和提高服务的可用性。 首先,Apache 2.2.15是Apache HTTP Server的一个版本,它提供了强大的静态内容处理能力和与其他服务器的...

    tomcat+linux负载均衡集群配置

    ### Tomcat + Linux 负载均衡集群配置详解 #### 一、背景介绍与环境配置 在企业级应用中,为了提升系统的可用性与性能,通常会采用负载均衡技术进行多台服务器之间的流量分发。本文将详细介绍如何利用 Apache 和 ...

    apachetomcat6.0.rar

    9. **集群与负载均衡**:在大型生产环境中,可能需要配置Tomcat集群以实现负载均衡和高可用性。这可以通过设置复制、session共享和负载均衡策略来实现。 10. **故障排查**:当遇到问题时,可以通过查看错误日志、...

    tomcat6.0tomcat6.0.rartomcat6.0.rartomcat6.0

    标题中的“tomcat6.0”指的是Apache Tomcat 6.0版本,这是一个开源的Java Servlet容器,主要用于部署和运行Java EE(Enterprise Edition)应用程序,特别是JSP(JavaServer Pages)和Servlet。Tomcat作为轻量级应用...

    web服务器 tomcat6.0

    8. **集群与负载均衡**:Tomcat 6.0支持多实例间的session复制,实现集群环境下的高可用性。配合负载均衡器,可以实现请求在多个Tomcat实例间的分配,提高系统整体处理能力。 9. **错误处理与调试**:Tomcat提供...

    apache-tomcat-6.0低版本配合MyEclipse

    10. **集群与负载均衡**:虽然Tomcat 6.0不是设计用来做大型集群部署的,但可以通过修改`conf/server.xml`文件配置多个`&lt;Engine&gt;`、`&lt;Host&gt;`和`&lt;Connector&gt;`元素,实现简单的负载均衡和故障转移。 总之,Apache ...

Global site tag (gtag.js) - Google Analytics