我有两个托管两个相同的Laravel应用程序的服务器。假设服务器一和服务器二。这里有负载均衡器,我们称它为LB服务器。

我在Laravel Forge上进行了设置。但是,当我将域指向LB时。我没有找到随机的404 CSS。我使用Laravel Mix并在部署时对其进行编译。由于两台服务器的部署不同,因此CSS版本和JS也不同。

发生的事情是,如果我调用域,并且不断刷新服务器,则会得到404 CSS。由于LB正在做Round Robin负载平衡。

问题是当我调用LB服务器提供给服务器一的域名时。我不断刷新后,LB服务器将服务于服务器2。那个时候,CSS仍在调用Server One CSS。

我怎样才能解决这个问题?


  注意:我知道我应该将CSS / JS / Images放入S3或CDN。
  目前无法使用这些选项。我不
  也想将我编译的CSS放入git版本中。

最佳答案

您应该更改部署:只生成一次文件并将它们同步到服务器,而不是在每个生产服务器上都生成它们(例如rsync)。

另一种(不太优雅的)方法可能是使用粘性会话,LB将设置一个cookie,然后始终将用户路由到同一后端(请参阅LB文档)。

关于php - Laravel Forge的负载均衡器获得了404 CSS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54139376/

10-12 17:36