Настройка:
- Несколько реплик Laravel за балансировщиком нагрузки в частной сети
- Реплики связываются с одним мастером, база данных которого находится в той же частной сети
- Реплики настроены на использование драйвера сеанса базы данных
- Мастер имеет соответствующую таблицу сеансов, созданную с помощью:
php artisan session:table
- Cloudflare запускает балансировщик нагрузки с помощью https и всех остальных (включаясам балансировщик нагрузки) http
Когда я пытаюсь войти в систему, я вижу записи, создаваемые в таблице сеансов (хотя столбец IP является балансировщиком нагрузки 10.0.0.0/24 из частной сети), XXX_session
cookie также создается в браузере, но пользователь никогда не входит в систему и не возвращается к входу в систему.
Этого не происходит, если я вместо этого использую драйвер cookie.
Этот вопрос и ответ звучали многообещающе, поскольку в нем упоминалось редактирование конфигурации сеанса, но, к сожалению, laravel 5.8 обнаруживает все элементы прямо из .env
и никогда не возвращается к этим вторым опциям по умолчанию, оставляя меня с вещами, которые я уже сделал в соответствии с документацией сеанса базы данных laravel.
Вопрос: Что не так, потому что laravel пишетчастный IP вместо реального пользователя IP в базу данных? если это так, как заставить его записать реальный IP-адрес пользователя, полученный от cloudflare?
Правки:
10/7/2019: изменениеIP-адрес моего внешнего IP-адреса в базе данных не регистрирует меня, даже если я миную балансировщик нагрузки.