我有一个Laravel 7应用程序,在NGINX负载均衡器后面有两个实例,SSL终止于负载均衡器,我已经设置了受信任的代理,如Laravel留档中所述,它按预期工作,所有流量都使用HTTPS。我有两个Laravel实例使用相同的Redis服务器进行会话和一个单独的Redis服务器进行缓存,两个实例都使用相同的会话域。env
如果两台Laravel服务器是负载平衡器中的唯一实例,则它们都能正常工作。但是,当两个Laravel实例都添加到负载平衡器时,任何社交名都会失败,并出现无效状态错误。
HTTP 500内部服务器错误
Laravel\Socialite\Two\InvalidStateException
抽象提供者-
/app/Http/Controllers/Auth/LoginController。php(第108行)
// Get google user data
$google = Socialite::driver('google')->user();
我对谷歌和Facebook的登录都有同样的问题。如果我尝试手动登录或注册一个新用户,我会看到419页过期,但当负载平衡器只有一个实例或我没有为我们提供负载平衡器时,这些问题都不会发生。
谢谢,
李。
好的,我已经解决了这个问题,我重建了。env文件,然后剪切并粘贴到两个服务器中,然后生成新密钥并重新启动应用程序服务器和负载平衡器。
我都查过了。env文件多次出现,所以要么我遗漏了什么,要么问题不可见?
不管怎样,它现在都在工作。
谢谢,
李。