Использование сервера Memcache несколькими Drupal сайтами (совет новичку, то есть мне)))

Главные вкладки

Аватар пользователя Happy Smile Happy Smile 24 января 2019 в 11:16

Всем привет и очень Вам спасибо за предыдущую помощь. Я послушала вас и переехала на другой тарифный план, чтобы сайт быстро работал, но возник вопрос по одномй настройке а именно Использование сервера Memcache несколькими Drupal сайтами.

Надо подключить модуль https://www.drupal.org/project/memcache к хостингу.

Инструкция хостинга тут https://www.ukraine.com.ua/faq/ispolzovanie-memcache-v-drupal.html#!8 но по этой инструкции подключение только одного сайта к серверу memcache.

нашла инструкцию здесь как подключить Memcache к нескольким Drupal сайтам https://drupal-admin.ru/blog/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%...

и там есть инфо

Использование сервера Memcached несколькими Drupal сайтами
Если требуется, чтобы несколько Drupal сайтов разделяли memcached сервер, то требуется указать уникальный префикс для каждого Drupal сайт в массиве $conf в файле settings.php, например:

$conf['memcache_storage_key_prefix'] = 'something_unique';

написала:

Сайт 1

$conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc';
$conf['lock_inc'] = 'sites/all/modules/memcache/memcache-lock.inc';
$conf['memcache_stampede_protection'] = TRUE;
$conf['cache_default_class'] = 'MemCacheDrupal';
$conf['memcache_key_prefix'] = '1';

// The 'cache_form' bin must be assigned to non-volatile storage.
$conf['cache_class_cache_form'] = 'DrupalDatabaseCache';

// Don't bootstrap the database when serving pages from the cache.
$conf['page_cache_without_database'] = TRUE;
$conf['page_cache_invoke_hooks'] = FALSE;
$conf['memcache_servers'] = array('unix:///home/drupalmy/.system/memcache/socket' => 'default');

Сайт 2

$conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc';
$conf['lock_inc'] = 'sites/all/modules/memcache/memcache-lock.inc';
$conf['memcache_stampede_protection'] = TRUE;
$conf['cache_default_class'] = 'MemCacheDrupal';
$conf['memcache_key_prefix'] = '2';

// The 'cache_form' bin must be assigned to non-volatile storage.
$conf['cache_class_cache_form'] = 'DrupalDatabaseCache';

// Don't bootstrap the database when serving pages from the cache.
$conf['page_cache_without_database'] = TRUE;
$conf['page_cache_invoke_hooks'] = FALSE;
$conf['memcache_servers'] = array('unix:///home/drupalmy/.system/memcache/socket' => 'default');

Очень прошу посмотреть профессионалов правильно я ли все сделала. Спасибо наперед)))

Спрашивала в хостинга, там мне сказали, чтобы я обращалась к программистам профессионалам, вот надеюсь вы мне поможете))

Лучший ответ

Аватар пользователя fairrandir fairrandir 24 января 2019 в 12:24
1

Да. Поясняю на примере - на поддержке было несколько сайтов, на разных CMS, но редис-сервер у них был общий. Соотвтетственно, если используется цифровой ключ, то в случае возникновения проблем с кэшем или необходимости добавить новый - надо помнить, какой где используется, и просмотреть конфиги всех сайтов. Если же делать префикс по домену и однотипно, например mysite1_ru, mysite2_ru, mysite2_ru_forum нет проблемы как с добавлением нового префикса, так и с пониманием к чему он относится, когда анализируешь содержимое кэша какими-то внешними инструментами.

Комментарии

Аватар пользователя Happy Smile Happy Smile 24 января 2019 в 11:52

Да почему же, я установила на один сайт то существенно снизилась нагрузка и сайт стал намного быстрее работать. До установки memcache были тормоза ужасные на сайте

Аватар пользователя fairrandir fairrandir 24 января 2019 в 11:56

memcache_key_prefix вместо 1 и 2 надеюсь нормальные уникальные имена? Я-то Redis использовал, и там для нескольких сайтов удобнее было домены использовать в качестве префикса, дебажить и стату снимать.

Аватар пользователя Happy Smile Happy Smile 24 января 2019 в 12:02

не доконца сленг поняла, но вы это имели ввиду?

Сайт 1

$conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc';
$conf['lock_inc'] = 'sites/all/modules/memcache/memcache-lock.inc';
$conf['memcache_stampede_protection'] = TRUE;
$conf['cache_default_class'] = 'MemCacheDrupal';
$conf['memcache_key_prefix'] = 'mysite1.com';

// The 'cache_form' bin must be assigned to non-volatile storage.
$conf['cache_class_cache_form'] = 'DrupalDatabaseCache';

// Don't bootstrap the database when serving pages from the cache.
$conf['page_cache_without_database'] = TRUE;
$conf['page_cache_invoke_hooks'] = FALSE;
$conf['memcache_servers'] = array('unix:///home/drupalmy/.system/memcache/socket' => 'default');

Сайт 2

$conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc';
$conf['lock_inc'] = 'sites/all/modules/memcache/memcache-lock.inc';
$conf['memcache_stampede_protection'] = TRUE;
$conf['cache_default_class'] = 'MemCacheDrupal';
$conf['memcache_key_prefix'] = 'mysite2.com';

// The 'cache_form' bin must be assigned to non-volatile storage.
$conf['cache_class_cache_form'] = 'DrupalDatabaseCache';

// Don't bootstrap the database when serving pages from the cache.
$conf['page_cache_without_database'] = TRUE;
$conf['page_cache_invoke_hooks'] = FALSE;
$conf['memcache_servers'] = array('unix:///home/drupalmy/.system/memcache/socket' => 'default');

Аватар пользователя fairrandir fairrandir 24 января 2019 в 12:24
1

Да. Поясняю на примере - на поддержке было несколько сайтов, на разных CMS, но редис-сервер у них был общий. Соотвтетственно, если используется цифровой ключ, то в случае возникновения проблем с кэшем или необходимости добавить новый - надо помнить, какой где используется, и просмотреть конфиги всех сайтов. Если же делать префикс по домену и однотипно, например mysite1_ru, mysite2_ru, mysite2_ru_forum нет проблемы как с добавлением нового префикса, так и с пониманием к чему он относится, когда анализируешь содержимое кэша какими-то внешними инструментами.