Перенос хранения пользовательских сессий в Redis

Для корректной работы системы ELMA при большом количестве веб-серверов и/или пользователей системы появляется необходимость использовать сетевое хранилище данных, в котором будут храниться пользовательские сессии.

Redis (remote dictionary server) — сетевое журналируемое хранилище данных типа "ключ — значение" с открытым исходным кодом. Нереляционная высокопроизводительная СУБД.

Примечание
Версии Redis поддерживаются только для Unix-подобных операционных систем.

В данной статье рассмотрим установку и настройку сетевого хранилища данных 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 завершена.

Прикрепленные файлы