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
image_pdfimage_print

Leave a Reply

Your email address will not be published. Required fields are marked *