如何设置Apache Web Server以在两个Tomcats上集群Web服务

时间:2012-07-24 09:38:35

标签: web-services apache axis2 tomcat7

我正在尝试设置Apache Web服务器,以便在两台Tomcat服务器上平衡客户端的请求。对于Web服务,我使用Axis2。它部署在两个Tomcats上。当我调用Web服务时,始终只有一个服务器应答,尽管已建立群集。我使用了this教程,Axis2 1.6.1,Tomcat 7,Apache Web Server 2.2,我在Windows 32位系统上运行它。 如何平衡Tomcats上的客户端请求? 它可能与Web服务器的代理配置有关,但它只是一个想法。 如果您需要截图,请告诉我。抱歉我的德国口音:)

2 个答案:

答案 0 :(得分:1)

通常在负载均衡(群集)的情况下,一个服务器将首先应答 - 哪个服务器将由其配置中的负载均衡器(代理)决定。负载平衡器(代理)通常查询所有群集服务器,直到找到一个不太忙的服务器。为了测试集群环境,您必须模拟(或创建)高负载,或者您可以“减慢”(或完全停止)其中一个服务器。

答案 1 :(得分:1)

好的,现在有效。这是axis2.xml文件中的配置问题,我的IP错误。现在我在每个实例上都有以下配置:

    <!-- The host name or IP address of this member -->
    <parameter name="localMemberHost">127.0.0.1</parameter>

同样重要的是Tomcat实例的server.xml文件。这里每个实例的Shutdown端口必须不同:

实例1:

        <Server port="8005" shutdown="SHUTDOWN">

实例2:

        <Server port="8015" shutdown="SHUTDOWN">

连接器端口也必须不同:

实例1:

        <!-- Define an AJP 1.3 Connector on port 8009 -->
        <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

实例2:

        <!-- Define an AJP 1.3 Connector on port 8009 -->
        <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />

然后我只是在Apache Webserver的httpd.conf文件中设置这些调整,如下所示:

        BalancerMember ajp://127.0.0.1:8009 min=1 max=1 route=node1 loadfactor=1
        BalancerMember ajp://127.0.0.1:8010 min=1 max=1 route=node2 loadfactor=1

现在我的群集工作正常。有时你必须回过头来了解什么是错误的。