[ELMA3] Перенос хранения пользовательских сессий в Redis
Для корректной работы системы ELMA при большом количестве веб-серверов и/или пользователей системы появляется необходимость использовать сетевое хранилище данных, в котором будут храниться пользовательские сессии.
Redis (remote dictionary server) — сетевое журналируемое хранилище данных типа "ключ — значение" с открытым исходным кодом. Нереляционная высокопроизводительная СУБД.
В данной статье рассмотрим установку и настройку сетевого хранилища данных Redis.
Настройка ОС
1. Необходимо произвести установку Redis с помощью командной строки:
sudo apt update
sudo apt full-upgrade
sudo apt-get install redis
2. Далее в файле конфигурации /etc/redis/redis.config необходимо выполнить следующие действия:
- закомментировать строку, которая содержит IP-адрес (Bind 127.0.0.1:1) или изменить в данной строке указанный IP-адрес на свой;
- установить пароль для доступа к Redis (Requirepass MyPassword).
3. Запуск Redis осуществляется с помощью команды /etc/init.d/redis-server start.
Настройка сервера ELMA
1. Далее требуется скопировать библиотеки Redis в папку ../<Общая папка с файлами системы ELMA>/Web/bin/.
2. В файле конфигурации ../<Общая папка с файлами системы ELMA>/Web/Web.config необходимо произвести следующие действия:
- Заменить строку
<sessionState mode="InProc" timeout="30"/>
на
<sessionState mode="Custom" customProvider="MySessionStateStore"> <providers> <add type = "Microsoft.Web.Redis.RedisSessionStateProvider" name = "MySessionStateStore" connectionString = "machine1:6379, password= MyPassword,abortConnect=False"/> </providers> </sessionState>
где machine1:6379 – это адрес и порт сервера, а MyPassword – пароль сервера.
- Закомментировать блоки строк, как показано ниже:
<!--<remove name="Session" />--> <!--<add name="Session" type="EleWise.ELMA.Web.Mvc.Modules.ELMASessionStateModule, EleWise.ELMA.SDK.Web" />-->
ПримечаниеСледует обратить внимание, что в файле конфигурации таких блоков несколько.
Настройка Redis завершена.