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

带负载平衡器的laravel项目的状态419,laravel,laravel-5,load-balancing,digital-ocean,http-status-codes,Laravel,Laravel 5,Load Balancing,Digital Ocean,Http Status Codes,我使用Digital Ocean负载均衡器将所有请求划分为两个独立的服务器。两台服务器运行的是同一个Laravel应用程序,但当这两台服务器联机时,我尝试执行post请求,有时收到状态419,有时收到状态200,但当一台服务器脱机时,请求正常工作我想您使用的是默认会话驱动程序,即文件。因此,您的会话设置在其中一台服务器上,而另一台服务器不知道此会话。表单上设置的csrf令牌是使用访问者的当前会话创建和检查的,如果此请求被发布到其他服务器,您将收到错误419,因为此服务器不知道该会话 要解决这个问

我使用Digital Ocean负载均衡器将所有请求划分为两个独立的服务器。两台服务器运行的是同一个Laravel应用程序,但当这两台服务器联机时,我尝试执行post请求,有时收到状态419,有时收到状态200,但当一台服务器脱机时,请求正常工作

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


要解决这个问题,您应该使用一个会话驱动程序,它可以在数据库、memcached或redis等服务器之间共享。

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


要解决这个问题,您应该使用一个会话驱动程序,该驱动程序可以在数据库、memcached或redis等服务器之间共享。

确保负载平衡器知道需要将哪个用户或更具体的会话发送到哪个服务器。Laravel使用基于用户会话的crsf保护。如果您的第二个请求转到另一台服务器,则此crsf令牌将无效,从而返回419错误。谢谢,我将会话驱动程序更改为数据库,它工作正常:d确保您的负载平衡器知道需要将哪个用户或更具体的会话发送到哪个服务器。Laravel使用基于用户会话的crsf保护。如果您的第二个请求转到另一台服务器,此crsf令牌将无效,因此返回419错误谢谢,我将会话驱动程序更改为数据库,它成功了:DNice,我将尝试以下操作:有相同的问题,只想添加cookie也能工作,但您需要所有应用程序都使用相同的应用程序密钥尼斯,我将尝试这样做:有同样的问题,只是想添加cookie也可以工作,但所有应用程序都需要相同的APP_密钥