Roundcube – Increase Web Client Performance with Memcache
Memcache – это протокол для доступа к простому хранилищу значений ключей, поддерживаемому памятью, через сетевой сокет. Сервер memcached не выполняет какую-либо форму контроля доступа и является оптимальным для определенных кэшей, используемых в веб-клиенте Kolab (и связанных с ним HTTP-интерфейсах доступа), поскольку позволяет избежать лишних входов, контроля доступа и других подобных соображений политики программного обеспечения, а также как дисковый I/O.
В этой статье описывается установка и настройка одного сервера memcached для использования с веб-клиентом Roundcube для Kolab.
ПРЕДУПРЕЖДЕНИЕ. Эта процедура приведет к тому, что все существующие сеансы будут считаться недействительными, и все пользователи, которые в данный момент активны, будут эффективно выведены из системы с сообщением об ошибке «неверный сеанс».
CentOS 7 и Red Hat Enterprise Linux 7 (Maipo)
На указанном сервере memcached установите пакет memcached, включенный в стандартные дистрибутивные репозитории;
# yum -y install memcached
Вы можете отредактировать / etc / sysconfig / memcached и увеличить MAXCONN, а также CACHESIZE (в мегабайтах).
Если вы увеличиваете MAXCONN, чтобы разрешить больше подключений к memcached, до более чем 1024, вы также должны предоставить файл /etc/systemd/system/memcached.service.d/limits.conf со следующим содержимым (и соответствующим номером):
[Service] LimitNOFILE = 4096
Убедитесь, что служба memcached запущена и будет запущена при запуске системы;
# systemctl enable memcached # systemctl start memcached
На веб-сервере установите пакет php-pecl-memcache;
# yum -y install php-pecl-memcache
Проверьте /etc/php.d/memcache.ini для настройки session.save_path, который должен отражать адрес, по которому доступен ваш memcached сервер;
; Use memcache as a session handler session.save_handler=memcache ; Defines a comma separated of server urls to use for session storage session.save_path="tcp://memcached.example.org:11211?persistent=0&weight=1&timeout=2&retry_interval=15"
Обратите внимание, что в этой статье не рассматриваются вопросы брандмауэра, но должно быть очевидно, что ваш сервер memcached должен быть доступен для наиболее ограниченного числа клиентов.
Перезапустите веб-сервер, чтобы новое расширение PHP стало доступным;
# systemctl restart httpd
Чтобы настроить веб-клиент (и связанные веб-приложения и приложения на основе HTTP), отредактируйте файл /etc/roundcubemail/config.inc.php и убедитесь, что доступны следующие параметры:
$ config ['memcache_hosts'] = Array ('memcached.example.org:11211');
Теперь можно использовать следующие механизмы хранения для использования memcached:
$ config ['session_storage'] = 'memcache';
Этот параметр определяет, где сеансы сохраняются. Обычно PHP сохраняет информацию о сеансе в локальной файловой системе (ограничение для одной системы), и вместо этого веб-клиент по умолчанию использует базу данных. Использование memcached предотвратит возникновение дискового ввода-вывода.
$ config ['imap_cache'] = 'memcache';
Кэш IMAP используется для списков папок, параметров контроля доступа, метаданных подписки и аннотаций папок. Особенно для большого количества папок или папок, которые часто изменяются (например, почтовые папки с большим трафиком), изменение механизма хранения для этого кэша для использования memcached улучшит производительность.
$ config ['ldap_cache'] = 'memcache';
Хотя кэш LDAP используется менее часто и менее широко, это последний из возможных шагов оптимизации, если речь идет об использовании memcached для этих типов кэшей.
https://kb.kolabenterprise.com/guides/increase-web-client-performance-with-memcache