Liferay中的负载平衡和群集无法加载

时间:2015-01-17 23:24:41

标签: apache liferay cluster-computing liferay-6

我正在尝试使用粘性会话在我的本地系统上实现liferay 6.2中的群集。 我按照以下步骤进行配置。

1安装Apache Webserver并在httpd.conf

中进行以下更改

在文件末尾添加了以下代码段。

  <Proxy balancer://clusterdemo>
            BalancerMember ajp://localhost:8009/ route=INT1 smax=15 max=50 loadfactor=20
            BalancerMember ajp://localhost:8010/ route=INT2  smax=15 max=50 loadfactor=20
            </Proxy>

<Location / >
ProxyPass balancer://clusterdemo/ stickysession=JSESSIONID
</Location>

并取消注释下面的行

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule status_module modules/mod_status.so

2提取Liferay 6.2捆绑包的两份副本并相应更改端口号

3更改了Liferay tomcat包的jvmRoute文件中的server.xml

初审

<Engine name="Catalina" defaultHost="localhost" jvmRoute="INT1">

第二个实例

<Engine name="Catalina" defaultHost="localhost" jvmRoute="INT2  ">

4在Liferay实例的portal-ext.properties文件中添加了以下属性,并为两个实例配置了相同的数据库。

cluster.link.enabled=true

cluster.link.autodetect.address=localhost:3306

5重新启动的Apache Webserver和Liferay实例

如果我在浏览器中点击http://127.0.0.1/web/guest/welcome网址,我可以看到登录页面,输入用户名和密码即可登录。

问题

现在我的问题是css文件没有正确加载,如下图所示。但是经典主题的工作正常。 我认为它能够从Liferayhome\tomcat-7.0.42\webapps\ROOT\html\themes\classic加载css文件,但不能从Liferayhome\tomcat-7.0.42\webapps\welcome-theme加载任何原因?/。

enter image description here

Firbug截图 enter image description here

你能帮帮我吗?

**更新:**我在浏览器中进一步检查了一些内容并查看了cookie,我可以验证它对两个实例的转移控制。

Cookie:COOKIE_SUPPORT=true; JSESSIONID=48705C436A9BE3D054577705EA41FA77.INT1; GUEST_LANGUAGE_ID=en_US

Cookie:COOKIE_SUPPORT=true; JSESSIONID=C04FBBD76B10422D292827B301320DC4.INT2; GUEST_LANGUAGE_ID=en_US

先谢谢

2 个答案:

答案 0 :(得分:4)

您也错过了正确的Liferay群集中的其他几个步骤。从头到尾,

  • 文档库
  • 搜索索引

明显缺少步骤。请仔细阅读Liferay clustering文档并注意这只是故事的一部分:在Liferay的System Administration Training中,我们将花费将近一整天的时间来讨论所有不同的聚类选项。这并不意味着集群需要那么长时间 - 只是没有单一正确的集群配置,但这完全取决于可用的基础架构以及门户的预期负载和用例。

截至丢失的CSS文件 - 请监控您从Apache / Liferay返回的确切回复 - 例如使用Firebug或类似工具检查是否有404,500或其他人返回,以及错误消息是什么。

在配置粘性会话时,我通常配置tomcat来指示服务器名称(查找server.xml的jvmRoute),以便它自动将其名称添加到sessionid,Apache有机会知道tomcat创建了会话。

发表意见后,还有更多要检查的事项:

  • 确定您要平衡的服务器。然后通过http访问丢失的资源 - 例如端口8080或8081(或服务器配置的任何内容)
  • 检查这是否仅在INT1发生故障时发生,但在INT2发生时不发生(反之亦然)
  • 检查当你与另一台服务器平衡时是否发生这种情况(例如你在INT1上,取下INT1,平衡到INT2 - &gt;问题?你在INT1上,取下INT2,继续INT1 - &gt;问题?)
  • 确保AJP转发正确 - 您在问题中使用localhost。在同一台服务器上安装两台机器是非常不典型的。如果您更改了此问题,请额外额外额外确保主机名有效且不包含拼写错误。 - 而且它们可以路由。尝试从Apache主机到应用服务器的nmap,以确保端口可以访问,并且Apache和您的应用服务器之间没有防火墙步骤
  • 当你完成所有这些工作时,请睁大眼睛,不要盲目遵循这个建议:有很多要注意的事项是不可能在这个答案中列出所有内容。

此外,这更接近系统管理而不是编程,可能更适合serverfault.com。

答案 1 :(得分:1)

我对Liferay知之甚少,但我已经涉足过Tomcat。

我建议您检查如何在server.xml(和/或任何上下文XML文件)中配置ROOT和welcome-theme。