【问题标题】:Apache, Tomcat : Loadbalancing and failover configuration showing blank page.Apache、Tomcat:负载平衡和故障转移配置显示空白页。
【发布时间】:2016-04-15 19:41:36
【问题描述】:

我正在使用 mod_jk 为我们现有的 Apache tomcat 设置添加负载平衡和故障转移功能。为此,我设置了 2 个 Tomcat 实例。我做了一些更改,并将粘贴它们。我在 httpd 或 tomcat 的日志中没有收到任何错误,而且我只看到一个空白页。我做错了什么?

Apache 网络服务器配置:

workers.properties:

worker.list=loadbalancer
 worker.server1.port=8010
 worker.server1.host=localhost
 worker.server1.lbfactor=1
 worker.server1.type=ajp13


 worker.server2.port=8011
 worker.server2.host=localhost
 worker.server2.type=ajp13
 worker.server2.lbfactor=1


 worker.loadbalancer.type=lb
 worker.loadbalancer.balance_workers=server1,server2

worker.loadbalancer.sticky_session=true
worker.myworker.sticky_session_force=True

apache2.conf / httpd.conf :

Include sites-enabled/

LoadModule jk_module modules/mod_jk.so
JkWorkersFile /etc/apache2/workers.properties
JkLogFile   /etc/apache2/mod_jk.log
JkMount /* loadbalancer

sites-enabled/000-default:仅包含:

 JkMountCopy On

第一个tomcat的server.xml:

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

 <Connector port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000"/>

  <Connector port="8010" protocol="AJP/1.3" redirectPort="8081" URIEncoding="utf-8"
 compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/x-javascript,application/javascript"
/>
<Engine name="Catalina" defaultHost="localhost" jvmRoute="server1">
         <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">
</Cluster>
    </Engine>

第二个 Tomcat 的 server.xml :

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

 <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000"/>
 <Connector port="8011" protocol="AJP/1.3" redirectPort="8080" URIEncoding="utf-8"
 compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/x-javascript,application/javascript"
/>
  <Engine name="Catalina" defaultHost="localhost" jvmRoute="server2">
     <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">
  </Cluster>
        </Engine>

即使我关闭了任何 tomcat,我看到的也只是一个空白页。我究竟做错了什么?请告诉我。非常感谢.. :-)

【问题讨论】:

  • 您的 httpd 日志文件中有任何消息吗?还是mod_jk.log?请注意,如果您使用的是粘性会话,则不需要设置集群,除非您绝对需要故障转移。
  • @ChristopherSchultz :问题出在站点启用/000-default 中。当我将 JkMountCopy 更改为 JkMount /* 负载均衡器时,它起作用了。

标签: java apache tomcat load-balancing failover


【解决方案1】:

VirtualHost 之外指定任何JkMount 指令通常是不值得的。您应该具体并将它们映射到每个 VH。

JkMountCopy 应该对你有用。我怀疑有其他配置干扰了它。

【讨论】:

  • 是的,我必须把它放在 VH 中,因为我们有 SSL,所以我创建了一个带有 default:443 的 VH 并在里面放了这些。虽然当我重新启动 apache 时,我不断收到警告,但没有定义端口 80 的主机。我们的整个 webapp 在 https 上运行,例如 /**。
  • 如果您收到有关“端口 80 没有主机”的警告,也许您应该停止让 httpd 监听端口 80。
  • 我在哪里监听 80 端口,我检查了 ssl.conf 和 apache2.conf。在 sites-enabled/000-default 中也没有任何内容。
  • 您要查找的行是Listen 80,可能隐藏在另一个文件中。只需使用grep 搜索/etc/httpd/etc/apache2 子树中的所有文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-10
  • 1970-01-01
  • 2013-08-23
  • 2012-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多