Файлы cookie не устанавливаются в среде с балансировкой нагрузки

У меня есть балансировщик нагрузки Nginx, балансирующий нагрузку на два сервера nginx, обслуживающих контент PHP (Moodle). Они совместно используют одну и ту же базу данных и используют один и тот же каталог сеансов, используя общий ресурс NFS на отдельном сервере.

Я использую PHP 5.4.1 и последнюю версию Moodle.

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

Я попытался изменить режим cookie, чтобы использовать базу данных MySQL, но это тоже не работает.

Что я могу сделать, чтобы несколько рабочих узлов устанавливали файлы cookie, которые сервер хранит в общем каталоге (NFS)?

1 ответ

Возможно, вы захотите явно переслать заголовок Set-Cookie с proxy_pass_header Set-Cookie,

В общем, пытаясь определить влияние балансировщика нагрузки, я часто нахожу полезным иметь его "балансировку нагрузки" на одного работника, а не полностью обходить балансировщик нагрузки, подключаясь напрямую к работнику.

Только когда балансировщик нагрузки работает с одним работником, как ожидалось, тогда, как упомянул @user1279647, вы можете определить, нужны ли вам липкие сеансы или нет, протестировав с несколькими работниками.

Другие вопросы по тегам