Несколько нод и 1 сессия

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
S c
Сообщения: 883
Зарегистрирован: 2012.04.11, 14:46

Несколько нод и 1 сессия

Сообщение S c »

Всем привет. Есть N серверов с yii2 проектом, есть балансировщик, который разруливает - на какой сервер отправлять запрос.
1) Вопрос по авторизации (хранение сессии). Верно я понимаю - что сессию тоже нужно хранить в таком случае на отдельном сервере? Выбрали redis под это дело. Есть компонент - http://www.yiiframework.com/doc-2.0/yii ... ssion.html

Код: Выделить всё

[
    'components' => [
        'session' => [
            'class' => 'yii\redis\Session',
            'redis' => [
                'hostname' => 'localhost',
                'port' => 6379,
                'database' => 0,
            ]
        ],
    ],
]
Можно указать адрес (hostmane, port) для сессии. В таком случае сессия (авторизация) будет корректно работать на обоих серверах одновременно "из коробки"? Ситуация когда пользователь авторизуется на одном физическом сервере, а следующий его запрос балансировщик отправляет на второй сервер, будет ли он там авторизован?

2) Будет ли "задержка" ощутимая? Ведь выходит что при каждом запросе пользователя будет выполнятся дополнительный запрос на отдельный сервер с редисом?

3) Можно так же использовать обычную "файловую" сессию? http://www.yiiframework.com/doc-2.0/yii ... ssion.html
Я там не нашел в параметрах возможности указать удаленный сервер.
- этот пункт уже не актуален

Спасибо!
Последний раз редактировалось S c 2017.03.27, 16:47, всего редактировалось 1 раз.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Несколько нод и 1 сессия

Сообщение zelenin »

S c писал(а): 2017.03.27, 16:082) Будет ли "задержка" ощутимая? Ведь выходит что при каждом запросе пользователя будет выполнятся дополнительный запрос на отдельный сервер с редисом?
если сервера в одной сети, то в пределах нормы
S c писал(а): 2017.03.27, 16:083) Можно так же использовать обычную "файловую" сессию? http://www.yiiframework.com/doc-2.0/yii ... ssion.html
Я там не нашел в параметрах возможности указать удаленный сервер.
эм, у тебя есть прямой доступ к файловой системе удаленного сервера?
Аватара пользователя
S c
Сообщения: 883
Зарегистрирован: 2012.04.11, 14:46

Re: Несколько нод и 1 сессия

Сообщение S c »

Спасибо! А по первому вопросу - всё из коробки работать нормально будет да? Запускаю сервак с редисом, настраиваю чтоб сессия там хранилась (и от туда бралась) в конфиге, как выше написал, и все "ноды" будут иметь общую авторизацию, верно?

p,s, третий вопрос отпал, не актуально
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Несколько нод и 1 сессия

Сообщение zelenin »

S c писал(а): 2017.03.27, 16:46 Спасибо! А по первому вопросу - всё из коробки работать нормально будет да? Запускаю сервак с редисом, настраиваю чтоб сессия там хранилась (и от туда бралась) в конфиге, как выше написал, и все "ноды" будут иметь общую авторизацию, верно?
да
Аватара пользователя
S c
Сообщения: 883
Зарегистрирован: 2012.04.11, 14:46

Re: Несколько нод и 1 сессия

Сообщение S c »

Супер! Спасибо еще раз!
Аватара пользователя
S c
Сообщения: 883
Зарегистрирован: 2012.04.11, 14:46

Re: Несколько нод и 1 сессия

Сообщение S c »

Реализовали вообще проще - в настройках php-fpm указали редис и хост для него, сделали это на всех нодах. И все отлично заработало, даже компонент сессии переключать на Redis не понадобилось. Это хороший вариант или лучше все-таки не через ini файл а через компонент? или в принципе это одно и тоже?
Ответить