Load Balancer打破了Laravel 4中的资产

时间:2013-10-09 06:54:37

标签: php nginx laravel laravel-4 blade

我遇到了Laravel4的问题。我基于Laravel4 Bootstrap Starter(https://github.com/andrew13/Laravel-4-Bootstrap-Starter-Site)为合作伙伴创建了简单的网站。问题是该站点位于两个不同的psyhical服务器中,前面有负载均衡器。 Basset在公共/资产/编译中生成CSS和JS文件,但我在不同的服务器上有不同的校验和。

因此,它有时从server1加载CSS文件,有时从server2加载。当S1和&amp ;;生成HTML时S2的CSS文件存在404错误。

您可以在此处查看此问题的示例: http://affiliate.pirrit.com(刷新几次)

1 个答案:

答案 0 :(得分:0)

我不确定basset是如何工作的,但如果你可以输出没有哈希的文件名(不是HTML,实际文件),你可以使用H5BP's rewrite rule在HTML中使用哈希并路由到实际文件。这为您提供了缓存破坏的好处,而不会遇到负载平衡器背后的陷阱。

还有一个nginx version,因为您的服务器(或至少是您的负载均衡器)似乎是nginx。

最后,如果偏离主题,

  1. 您是否确保会话“粘性”(或确保您的会话在中央存储上保持不变?)。除非小心,否则负载平衡往往会使问题变得混乱
  2. 除非用户的useragent / IP地址传递到您的原始服务器,否则每个Web请求都有可能看起来像来自同一个用户(也称为您的负载均衡器)。
  3. 只要提一下你也遇到过它。这完全偏离了您的Basset问题。这是我遇到过的一些事情。