Настройка:
У нас есть два проекта Laravel.Один из них действует как клиент API (Laravel 5.4), а другой - как сервер API (Laravel 5.6).Они оба размещены в AWS за балансировщиком нагрузки (2 экземпляра, 2 для клиентского сервера, 2 для api-сервера).
Мы используем библиотеку https://github.com/tymondesigns/jwt-auth на сервере API для аутентификации клиентских запросов через токен JWT.Использование Redis в качестве драйвера кэша.
Что работает?
Когда мы используем 1 экземпляр в балансировщике нагрузки сервера API, он работает нормально.В локальной среде каждого разработчика команды это работает отлично.
Проблема:
Как только мы увеличим сервер API до 2 экземпляров в балансировщике нагрузки AWS, он больше не будет работать.Сервер API случайным образом возвращает Unauthenticated
со статусом 401
.Иногда он работает, но отправляет этот Unauthenticated
ответ случайным образом.Понятия не имею, почему это происходит.Мы попытались увеличить количество экземпляров на нашем тестовом сервере.Он действует одинаково, так что, похоже, он существует с несколькими серверами в балансировщике нагрузки.Но почему это так?Как мы можем решить эту проблему?Мы не можем воспроизвести эту проблему на локальном компьютере.