带有负载均衡器的 laravel 项目的状态 419

Ber*_*cic 1 load-balancing http-status-codes laravel digital-ocean laravel-5

我正在使用 Digital Ocean 负载均衡器将所有请求分成 2 个独立的服务器。两台服务器都运行相同的 Laravel 应用程序,但是当这 2 台服务器在线并且我尝试进行发布请求时,有时我会收到状态 419,有时会收到 200,但是当 1 台服务器处于离线状态时,请求可以正常工作

Jer*_*dev 6

我想您使用的是默认会话驱动程序,即文件。因此,您的会话设置在其中一台服务器上,而另一台服务器不知道此会话。表单上设置的 csrf 令牌是使用访问者的当前会话创建和检查的,如果此请求发布到其他服务器,您将收到错误 419,因为该服务器不知道会话。

要解决此问题,您应该使用可以在服务器之间共享的会话驱动程序,例如databasememcachedredis

  • 有同样的问题,只是想添加“cookie”也可以,但所有应用程序都需要相同的“APP_KEY” (4认同)