Laravel Социальный позади Nginx Балансировщик нагрузки - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть Laravel 7 APP с двумя экземплярами за NGINX балансировщиком нагрузки с SSL, оканчивающимся на балансировщике нагрузки. Я установил доверенные прокси, как описано в документации Laravel, которая работает должным образом и Весь трафик c использует HTTPS. У меня есть оба экземпляра Laravel, использующие один и тот же сервер Redis для сеанса и отдельный сервер Redis для кэширования, и оба экземпляра используют один и тот же домен сеанса в .env

Оба сервера Laravel работают правильно, если они единственный экземпляр в балансировщике нагрузки. Однако, когда оба экземпляра Laravel добавляются в балансировщик нагрузки, любой вход в систему Socialite завершается неудачно с ошибкой недопустимого состояния.

Внутренняя ошибка сервера HTTP 500

Laravel \ Socialite \ Two \ InvalidStateException

AbstractProvider-> user ()

/ app / Http / Controllers / Auth / LoginController. php (строка 108)

// Get google user data
$google = Socialite::driver('google')->user();

У меня та же проблема с обоими Google и логины Facebook. Если я пытаюсь войти в систему вручную или зарегистрировать нового пользователя, я получаю 419 | Страница просрочена, но ни одна из этих проблем не возникает, когда у балансировщика нагрузки есть только один экземпляр, или я не использую балансировщик нагрузки.

Спасибо,

Ли.

1 Ответ

0 голосов
/ 11 апреля 2020

Хорошо, я исправил проблему, перестроил файл .env, затем вырезал и вставил на оба сервера, затем сгенерировал новые ключи и перезапустил серверы приложений и балансировщик нагрузки.

I ' Я несколько раз проверял оба файла .env, поэтому я что-то пропустил или проблема не видна?

В любом случае, теперь это работает.

Спасибо,

Lee.

...