使用负载平衡器的 laravel 个项目的状态 419
Status 419 on laravel project with Load Balancer
我正在使用 Digital Ocean Load balancer 将所有请求分成 2 个独立的服务器。两台服务器都运行相同的 Laravel 应用程序,但是当这 2 台服务器在线并且我尝试执行 post 请求时,有时我收到状态 419,有时收到 200,但是当 1 台服务器离线时,请求正常工作
我想您正在使用默认的会话驱动程序,即文件。因此,您的会话设置在其中一台服务器上,而另一台服务器不知道此会话。表单上设置的 csrf 令牌是使用访问者的当前会话创建和检查的,如果将此请求发布到其他服务器,您将收到错误 419,因为该服务器不知道该会话。
要解决这个问题,您应该使用可以在服务器之间共享的会话驱动程序,例如 database
、memcached
或 redis
。
我正在使用 Digital Ocean Load balancer 将所有请求分成 2 个独立的服务器。两台服务器都运行相同的 Laravel 应用程序,但是当这 2 台服务器在线并且我尝试执行 post 请求时,有时我收到状态 419,有时收到 200,但是当 1 台服务器离线时,请求正常工作
我想您正在使用默认的会话驱动程序,即文件。因此,您的会话设置在其中一台服务器上,而另一台服务器不知道此会话。表单上设置的 csrf 令牌是使用访问者的当前会话创建和检查的,如果将此请求发布到其他服务器,您将收到错误 419,因为该服务器不知道该会话。
要解决这个问题,您应该使用可以在服务器之间共享的会话驱动程序,例如 database
、memcached
或 redis
。