Работа с memcached в unix/linux

Введение

Разные утилиты, которые используются для кэширования (например, Memcached), могут повышать производительность базы данных путем временного сохранения информации в памяти. Обычно это касается тех записей, которые вы либо недавно запрашивали, либо запрашиваете часто. В этом случае при использовании кэширования уменьшается количество прямых запросов к базе данных.

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

Поэтому в этом руководстве будет рассказано не только о том, как установить, но и как защитить сервер с Memcached.

Memcached

Memcached это сервер, который позволяет быстро и эффективно сохранять данные в память с определенным ключом, с помощью которого эти данные можно так же быстро получить.

В силу своей простоты Memcached работает гораздо быстрее чем MySQL, и потребляет гораздо меньше памяти. Есть и ограничения связанные с этой простотой, например нельзя отправлять сложные запросы на выборку, поэтому полностью заменить базу данных сервером Memcached в WordPress невозможно.

Кэширование объектов в WordPress работает по тому же принципу, что и Memcached — произвольные значения или объекты хранятся в памяти под определенным ключом. Недостаток один — поскольку кэш объектов в WordPress является непостоянным, все закэшированные значения сбрасываются при следующем посещении страницы сайта.

Сервер Memcached помогает решить эту проблему и сделать объектный кэш постоянным. Это значит, что такие данные как опции сайта WordPress, пользователи, термины, записи, мета-данные и прочее, можно сразу получать из хранилища Memcached в обход базы данных MySQL.

Установка Memcached

Для того, чтобы установить сервер Memcached вам потребуется доступ администратора к вашей хостинг-площадки. Большинство провайдеров виртуального хостинга не предоставляют такой возможности, поэтому следует смотреть в сторону виртуальных (VPS) или выделенных (dedicated) серверов. Учтите так же, что на некоторых специализированных хостинг-площадках уже установлен и настроен сервер Memcached, например WP Engine.

Установить сервер Memcached легко с помощью менеджера пакетов в том или ином дистрибутиве Linux. Например в Ubuntu или Debian Linux сделать это можно с помощью утилиты :

sudo apt-get install memcached

После установки сервер Memcached запустится сразу. Конфигурация сервера находится в файле , где вы можете настраивать такие параметры как память, адрес и порт. Эти данные вам потребуются при конфигурации плагина для WordPress.

После внесения изменений в конфигурационный файл не забудьте перезагрузить сервер:

sudo service memcached restart

Учтите, что перезагрузка сервера удаляет все закэшированные данные, поэтому перезагрузка на живом сайте может вызвать дополнительную нагрузку на хостинг-сервер и крайне не рекомендуется.

Кэширование страниц WordPress

Кешировать страницы блога на WordPress я буду с помощью плагина Batcache. Он позволяет кэшировать страницы в WordPress с помощью механизма кэширования объектов расмотренного ранее. Batcache используется во многих высоко посещаемых проектах, включая сеть WordPress.com.

Что такое Batcache

Плагин Batcache нацелен на проекты с высокой посещаемостью. Он написан для выполнения только одной задачи — кэширование страниц. Основная идея плагина — использование постоянного кэша объектов WordPress для хранения данных. Это позволяет кэшировать страницы на серверах Memcached, Redis, APC и др.

Как установить WordPress плагин Batcache

До установки плагина Batcache, проверьте, что у вас работает плагин для внешнего кэширования объектов, например Memcached Object Cache, рассмотренный выше. Для конфигурирования плагина кэширования объектов вам потребуется root-доступ к вашей хостинг-площадке.

Batcache можно скачать из официального репозитория WordPress.org, но не спешите его активировать на вашем сайте. Дистрибутив Batcache содержит в себе два отдельных плагина: advanced-cache.php для кэширования страниц и batcache.php (Batcache Manager) для некоторых дополнений к основному плагину.

Активация основного плагина Batcache происходит путем копирования файла advanced-cache.php из архива в директорию wp-content. Файл (или «drop-in») advanced-cache.php является специальным для WordPress, он исполняется на ранней стадии загрузки ядра, и именно с помощью этого файла реализуется кэширование страниц в WordPress.

После копирования advanced-cache.php в директорию wp-content, необходимо включить его обработку в файле конфигурации wp-config.php с помощью специального параметра:

define( 'WP_CACHE', true );

Это строка должна быть выше (по тексту) подключения файла wp-settings.php.

Как проверить, что плагин работает

После объявления константы, плагин Batcache начинает автоматически кэшировать страницы. Для того, чтобы проверить его работоспособность, посетите любую страницу вашего сайта и просмотрите ее исходный код. Batcache автоматически добавит в конец страницы примерно следующую информацию:

<!--
    generated 179 seconds ago
    generated in 0.093 seconds
    served from batcache in 0.002 seconds
    expires in 121 seconds
-->

Эта информация говорит о том, что страница была сгенерирована 179 секунд назад за 0.093 сек. Выдача страницы произошла с помощью Batcache за 0.002 сек., обновление данной страницы в кэше произойдет через 121 секунду.

Batcache не кэширует страницы для вошедших (залогиненных) пользователей. Чтобы проверить его работу лучше воспользоваться режимом инкогнито в вашем браузере (Ctrl+Shift+P в FireFox или Ctrl+Shift+N в Google Chrome).

Как настроить плагин BatCache

Настройки по-умолчанию подходят для большинства сайтов, но при желании вы всегда можете их скорректировать. А так как в Batcache нет интерфейса для настройки плагина и все параметры находятся в исходном коде плагина. То нам необходимо создать файл настроек batcache-config.php в корневой директории WordPress и подключитm его в wp-config.php следующим образом:

require_once( ABSPATH . 'batcache-config.php' );

Эту строку необходимо разместить до подключения файла wp-settings.php, но после объявления константы ABSPATH.

В самом файле batcache-config.php необходимо объявить массив с настройками, который по умолчанию может быть пустым:

<?php
$batcache = array();

Далее в этот массив и в этом же файле можно добавлять параметры следующим образом:

$batcache = 600;

В этом примере мы устанавили временной интервал 600 секунд для max_age (время жизни одной страницы в кэше).

По анологии можно изменять следующие параметры:

  • max_age — время жизни одной страницы
  • times — количество требуемых посещений, перед тем как страница попадает в кэш
  • seconds — работает вместе с параметром times, сбрасывает счетчик через установленное время
  • debug — установить false для предотвращения вывода информации о кэше в исходном коде страниц
  • group — группа используемая для генерации ключей в кэше объектов. Изменив группу вы можете «сбросить» весь кэш страниц
  • cache_redirects — установите в положение true для того, чтобы кэшировать редиректы

Подробнее обо всех переменных и вариантах тонкой настройки можно прочитать на странице плагина в GitHub — https://github.com/Automattic/batcache

Для чего нужен плагин Batcache Manager

Вспомогательный плагин Batcache Manager объявляет полезную функцию batcache_clear_url(), с помощью который можно обновить кэш по определенному адресу. В частности Batcache Manager автоматически использует эту функцию для обновления кэша главной страницы и страницы записи при ее сохранении.

Си

Библиотека libmemcached на данный момент активно развивается и представляется наиболее подходящим выбором при работе с Си и PHP. Также, в комплекте с самой клиентской библиотекой поставляются дополнительные утилиты для работы с memcached, позволяющие просматривать, устанавливать, удалять значения в кэше memcached. Кстати, удивляет, что набор утилит идет не с серверной частью, а с клиентской библиотекой.

man libmemcached
man libmemcached_examples

C библиотекой поставляются описание несложных примеров использования. За более интересными же способами применения имеет смысл заглянуть в исходные тексты утилит, благо все идет вместе.

Рекомендую обратить внимание на собранные утилиты. Наверняка многие из них станут верными помощниками при разработке приложений

  • — выдает информацию о сервере memcached
  • — выдает значение по ключу
  • — удаляет значение по ключу
  • — выдает список ключей

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

memstat --servers localhost

 Listing 1 Server
 Server: localhost (11211)
 pid: 14534
  uptime: 1950
 time: 1247390264
 version: 1.4.0
 pointer_size: 32
 rusage_user: 0.0
 rusage_system: 0.0
 curr_items: 0
 total_items: 0
 bytes: 0
 curr_connections: 10
 total_connections: 11
 connection_structures: 11
 cmd_get: 0
 cmd_set: 0
 get_hits: 0
 get_misses: 0
 evictions: 0
 bytes_read: 0
 bytes_written: 0
 limit_maxbytes: 67108864
 threads: 5

Получили статистику — следовательно memcached функционирует и откликается на запросы.

Итак, на настоящий момент готовы к использованию сервер memcached и клиентская библиотека. Осталось дело за малым — внедрить использование memcached в разрабатываемое приложение. Что касается приложения — все в руках разработчиков, а мы рассмотрим небольшой пример работы с базовыми функциями.

memcached предоставляет следующий набор основных функций (их, конечно, больше, но здесь приведены основные):

  • set — занести в кэш пару ключ-значение
  • add — занести в кэш значение при условии, что значения с таким ключом в кэше еще нет
  • replace — обновляет кэш при условии, что значение с таким ключом в кэше уже есть
  • get — получает значение из кэша по указанному ключу

Пример программы на C

Файл mc.c:

#include "stdio.h"
#include "string.h"
#include "memcached.h"

int main( void )
{
    char *key = "key";
    char *value = "value";
    uint32_t flags = ;
    size_t length = ;
    char *value2 = NULL;
    memcached_return rc;

    // 1. создать структуру для работы с кэшем
    memcached_st *memc = memcached_create(NULL);

    // 2. указать сервер с которым будем работать
    memcached_server_add(memc,"localhost",11211);

    // 3. занести пару ключ-значение в кэш
    rc = memcached_set(memc, key, strlen(key), value, strlen(value)+1, (time_t), flags);

    if (rc == MEMCACHED_SUCCESS) {
    } else {
        // обработать ошибку
    }

    // 4. получить значение
    value2 = memcached_get (memc, key, strlen(key),     & length, & flags, & rc);
    if (rc == MEMCACHED_SUCCESS) {
        printf("%s\n", value2);
        free(value2);
    } else {
        // обработать ошибку
    }

    // 5. высвободить структуру
    memcached_free(memc);
    return ;
}

Программа состоит из 5 основных операций и в особых комментариях не нуждается. Разве что можно отметить, что в пункте 2 можно добавлять много серверов, в случае использования распределенной системы.

Компилируем, возможно придется явно указать пути к библиотекам:

gcc -Wall -o mc mc.c -I/usr/local/include/libmemcached/ -lmemcached

Запускаем:

./mc
 value

Видим требуемое значение — должно быть, заработало!

Для уточнения деталей, смотрим сообщения на сервере memcached:

<32 new auto-negotiating client connection
32: Client using the ascii protocol
32 STORED
32 sending key key
>32 END
<32 quit
<32 connection closed.

В данном примере представлены следующие события: подключение клиента, установка пары ключ-значение, чтение данных по ключу и отключение клиента.

Посмотрим статистику на сервере:

memstat --servers localhost
 Listing 1 Server
 Server: localhost (11211)
 pid: 14534
 uptime: 4659
 time: 1247392973
 version: 1.4.0
 pointer_size: 32
 rusage_user: 0.0
 rusage_system: 0.0
 curr_items: 1
 total_items: 1
 bytes: 58
 curr_connections: 10
 total_connections: 13
 connection_structures: 11
 cmd_get: 1
 cmd_set: 1
 get_hits: 1
 get_misses: 0
 evictions: 0
 bytes_read: 58
 bytes_written: 58
 limit_maxbytes: 67108864
 threads: 5

Следующие две строчки показывают, что в кэше появилось значение:

curr_items: 1
total_items: 1

Посмотрим на данное значение:

memcat --servers localhost key
 value

Итак, приложение, использующее memcached — готово.

3. Apache Ignite

Apache Ignite, также бесплатное и с открытым исходным кодом, горизонтально масштабируемое распределенное хранилище ключей и значений в памяти, кэш и многомодельная система баз данных, которая предоставляет мощные API-интерфейсы обработки для вычислений с распределенными данными. Это также сетка данных в памяти, которую можно использовать либо в памяти, либо с собственной персистентностью Ignite. Он работает в UNIX-подобных системах, таких как Linux, а также Windows.

Он имеет многоуровневое хранилище, полную поддержку SQL и транзакции ACID (атомарность, согласованность, изоляция, долговечность) (поддерживается только на уровне API ключ-значение) на нескольких узлах кластера, совместную обработку и машинное обучение. Он поддерживает автоматическую интеграцию с любыми сторонними базами данных, включая любые СУБД (например, MySQL, PostgreSQL, Oracle Database и т. д.) или хранилища NoSQL.

Важно отметить, что, хотя Ignite работает как хранилище данных SQL, это не полностью база данных SQL. Он чётко обрабатывает ограничения и индексы по сравнению с традиционными базами данных; он поддерживает первичные и вторичные индексы, но только первичные индексы используются для обеспечения уникальности

Кроме того, он не поддерживает ограничения внешнего ключа.

Ignite также поддерживает безопасность, позволяя вам включить аутентификацию на сервере и предоставить учётные данные пользователя на клиентах. Также существует поддержка связи через сокеты SSL для обеспечения безопасного соединения между всеми узлами Ignite.

Ignite имеет множество вариантов использования, включая систему кеширования, ускорение системной рабочей нагрузки, обработку данных в реальном времени и аналитику. Его также можно использовать как платформу, ориентированную на графы.

Шаг 3: добавление авторизованных пользователей

Для того, чтобы добавить авторизованных пользователей в Memcached, можно использовать SASL (Simple Authentication and Security Layer — простой уровень аутентификации и безопасности). Это фреймворк, который разделяет механизмы аутентификации от прикладных протоколов.

Сначала нужно включить поддержку SASL в конфигурационном файле Memcached, а затем перейти к добавлению пользователя.

Настройка поддержки SASL

Проверьте текущее состояние Memcached, используя команду memcstat. Это нужно для того, чтобы в дальнейшем можно было отследить сделанные изменения.

Чтобы убедиться в том, что сервис Memcached запущен и работает, введите команду:

$ memcstat --servers="127.0.0.1"

Вы должны увидеть примерно вот такой вывод:

Server: 127.0.0.1 (11211)

pid: 3831

uptime: 9

time: 1520028517

version: 1.4.25

. . .

Теперь нужно включить SASL. Добавьте параметр -S в конфигурационном файле /etc/memcached.conf. Для этого снова откройте файл:

$ sudo nano /etc/memcached.conf

В конце файла добавьте:

. . .

-S

Далее найдите и раскомментируйте опцию -vv, благодаря которой вы будете получать подробный отчет в /var/log/memcached. Раскомментированная строка будет выглядеть вот так:

. . .

-vv

Сохраните и закройте файл.

Перезапустите сервис Memcached:

$ sudo systemctl restart memcached

Теперь можно посмотреть логи для того, чтобы убедиться, что поддержка SASL включена:

$ sudo journalctl -u memcached

Вы должны увидеть следующую строку:

. . .

Mar 31 20:15:39 memcached systemd-memcached-wrapper: Initialized SASL.

. . .

Можно еще раз проверить статус Memcached, но т.к. теперь активен SASL, без аутентификации эта команда не будет выполнена:

$ memcstat --servers="127.0.0.1"

Вы не увидите никакого вывода. Для проверки статуса команды можно ввести команду ниже:

$ echo $?

Она покажет код завершения: любые цифры, кроме 0, говорят о том, что команду выполнить не удалось. В данном случае вы должны увидеть 1, а значит, команда не была выполнена.

Добавление авторизованного пользователя

Теперь можно загрузить пакет sasl2-bin, который содержит программы администрирования базы пользователей SASL. Это позволит создать авторизованного пользователя:

$ sudo apt-get install sasl2-bin

Далее вам нужно создать директорию и файл, который Memcached будет использовать для проверки настроек SASL:

$ sudo mkdir -p /etc/sasl2

$ sudo nano /etc/sasl2/memcached.conf

Добавьте следующие строки в конфигурационный файл SASL:

mech_list: plain

log_level: 5

sasldb_path: /etc/sasl2/memcached-sasldb2

Mech_list установлен на plain, это значит, что Memcached будет использовать собственный файл с паролями и сверять текстовый пароль. Также нужно будет указать путь к файлу базы данных пользователя (это будет сделано далее). Сохраните и закройте файл после изменений.

Теперь необходимо создать базу данных SASL с данными пользователя. Для этого используйте команду saslpasswd2 с ключом -c. Использование ключа -f позволит указать путь к базе данных (который также нужен для файла memcached.conf):

$ sudo saslpasswd2 -a memcached -c -f /etc/sasl2/memcached-sasldb2 user

Далее нужно изменить права: пользователь user должен получить права на базу данных SASL.

$ sudo chown memcache:memcache /etc/sasl2/memcached-sasldb2

После этого перезапустите Memcached:

$ sudo systemctl restart memcached

Команда memcstat покажет, работает или нет теперь аутентификация (введите ее со своими данными):

$ memcstat --servers="127.0.0.1" --username=user --password=ваш_пароль

Вывод должен выглядеть примерно вот так:

Server: 127.0.0.1 (11211)

pid: 3831

uptime: 9

time: 1520028517

version: 1.4.25

. . .

А значит, Memcached успешно работает с поддержкой SASL и пользовательской авторизацией.

Пример использования Memcache

Данный раздел покажет, как создать простой PHP-скрипт для использования Memcache, чтобы извлечь значение, которое первоначально находилось в таблице MySQL.

Следующие комнды создают пользователя MySQL (который может получить доступ к соответствующей базе данных), таблицу для запросов, а также внесут в новую таблицу одно значение, которое понадобится для проведения проверки.

Итак, войдите в mysql (mysql -u root –p) и выполните команды:

Выйдите из MySQL и создайте скрипт-файл memcache:

Чтобы создать php-скрипт, выполните следующие действия (пример готового скрипта можно найти ниже):

  1. Для начала создайте новое постоянное соединение с memcache на порту memcache по умолчанию (это порт 11211).
  1. Затем нужно подключиться к новой базе данных mysql через ранее созданного пользователя:
  1. Теперь создайте запрос, а также укажите ключ для него:

Сначала скрипт ищет ответ на запрос в кэше . Если результат не обнаружен, скрипт перенаправляет запрос к исходной базе данных. После того как ответ на запрос был найден в исходной БД, скрипт сохраняет результат в кэше, используя команду set (эта команда сохраняет запрос и позволяет пользователю указать время в секундах, на протяжении которого данные должны оставаться в кэше).

При первом запуске скрипт сообщит, что данные были собраны из базы данных MySQL. Но после этого он, как и положено, сохраняет информацию в кэше, так что во время второго запуска скрипт извлекает запрашиваемые данные уже из кэша. Через 10 минут кэш очистится, потому при следующем запуске скрипт снова будет искать информацию в базе данных.

В целом, готовый скрипт имеет следующий вид:

При запуске из командной строки скрипт выведет следующий результат:

Очистка кэша оперативной памяти

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

В Windows 10 есть специальная встроенная утилита для очистки быстрой памяти ОП.

  1. В любом файловом менеджере открываем папку C:WindowsSystem32, находим и запускаем файл rundll32.exe.

    Открываем папку C:WindowsSystem32, находим и запускаем файл rundll32.exe

  2. Процесс проходит без запуска какого-либо интерфейса и очень быстро.

Также можно воспользоваться утилитой «Выполнить» для аналогичного запуска программы без поиска её в системной папке.

  1. Нажимаем комбинацию клавиш Win R, в соответствующем поле прописываем rundll32.exe и запускаем в работу через Enter или кнопку OK.

    Нажимаем комбинацию клавиш Win R, в соответствующем поле прописываем rundll32.exe и запускаем в работу через Enter или кнопку OK

Установка Web-Сервера IIS 7.0 на Windows Server 2008

Перед установкой хочу дать небольшой совет, устанавливайте данную роль сервера на полностью «голый
» сервер, т.е. помимо службы IIS там ничего недолжно быть установлено (имеется в виду из ролей сервера
) исключением может быть только DNS сервер. Существует даже отдельная редакция Windows Server 2008 Web Server, которая полностью ориентирована именно на Web сервер, кстати, она намного дешевле других редакций этой операционной системы.

Существует несколько вариантов установки данной роли в Windows:

  • Через графический интерфейс (мы будем использовать
    );
  • Через командную строку (на мой взгляд, не удобно, так как приходиться полностью вручную писать все необходимые модули, которые Вам нужны, причем их названия регистрозависимые
    );
  • Также через командную строку, но уже с использованием XML файла (удобно, если Вам необходимо поднять много web серверов, Вы просто один раз повозитесь с xml файлом, а потом просто будете запускать одну команду в командной строке и все
    ).

Теперь давайте перейдем непосредственно к самой установки этого сервера. Предполагается, что у Вас уже установлена операционная система Windows Server 2008.

Нажимаем Пуск -> Администрирование -> Диспетчер сервера -> переходим на пункт роли и жмем «Добавить роли».

На следующем шаге просто жмите «Далее
», а вот на следующем шаге приостановитесь и задумайтесь. Какие именно компоненты (модули
) Вам нужны, если все оставить по умолчанию, то Вы сможете, обрабатывать только статический контент, и вообще у Вас будет доступно мало функций на Вашем сервере. Но все равно, все ставить не нужно, выберите только то, что Вам необходимо.

В моем случае мы будем прикручивать PHP и для поддержки этого нужно выбрать пункт CGI, а если Вы вдруг используете asp.net, то выбирайте соответствующие пункты, да и вообще почитайте, что там есть еще (описание располагается справа
), чтобы потом не удивляться, «почему у меня нет этого и не работает вот это
». Жмите далее.

А теперь жмем «Установить
». Ждем несколько минут, и после того как мастер добавления ролей скажет, что «Установка прошла успешно
», жмем закрыть. И сразу же можем проверить работоспособность нашего web сервер, путем простого открытия браузера и набора в адресной строке http://localhost
и если у Вас появилась следующая картинка, то Ваш сервер работает!

Руководство

Для начала, мы установим пакет Memcached

.

Yum -y install memcached

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

Systemctl start memcached.service
systemctl enable memcached.service

Теперь Memcached должен быть настроен для оптимального использования. Мы позаботимся о том.

Nano /etc/sysconfig/memcached

Вы хотите выделить память для Memcached? Это достигается путем изменения значения CACHESIZE, установив его на желаемое количество оперативной памяти, выделенной для кэша.

PORT=»11211″USER=»memcached»MAXCONN=»1024″CACHESIZE=»64″OPTIONS=»»

Так как вы только изменили конфигурацию, вам необходимо перезапустить Memcached чтобы новые значения вступили в силу.

Systemctl restart memcached.service

Чтобы использовать Memcached из PHP, требуется расширение. Мы установим в следующем примере.

Yum -y install php-pecl-memcache

Теперь, когда PHP был обновлен, вам необходимо перезапустить Apache. Кроме того, перезапустите Memcached.

Systemctl restart httpd.service
systemctl restart memcached.service

Давайте проверим загрузку модуля Memcached.

Php -m | grep memcache
memcache

Для дальнейшего проверки состояния модуля, мы создадим информационную страницу PHP. Эта функция возвращает информацию о конфигурации окружающей среды PHP. Если Memcached настроен правильно, он будет включать в себя подробную информацию о поддержки Memcached.

Nano /var/www/html/index.php
<?php phpinfo();
?>

Теперь мы, наконец, проверим состояние модуля Memcached

в PHP. Посетите страницу, которую вы только что создали по адресу: http://your_main_ip/index.php

Настройка доступа по частной сети

Теперь вы знаете, как настроить Memcached для прослушивания локального интерфейса, что может предотвратить атаки типа отказ в обслуживании и защитить интерфейс Memcached от воздействия внешних сторон. Однако в некоторых случаях есть необходимость разрешить доступ к Memcached другим серверам. Для этого можно привязать Memcached к интерфейсу частной сети.

Ограничение доступа по IP-адресу в брандмауэре

Прежде чем приступить к конфигурации, рекомендуется настроить правила брандмауэра, чтобы ограничить доступ к серверу Memcached. Для этого вам понадобятся внутренние IP-адреса клиентов, которые должны иметь доступ к Memcached.

Если вы используете брандмауэр UFW, вы можете ограничить доступ к экземпляру Memcached, введя следующее:

После этого можно привязать Memcached к интерфейсу частной сети.

Настройка Memcached для поддержки интерфейса частной сети

Теперь, когда брандмауэр готов, вы можете привязать Memcached к частному интерфейсу сервера вместо 127.0.0.1.

Откройте /etc/memcached.conf:

Найдите строку -l 127.0.0.1, которую вы уже проверяли или редактировали ранее, и измените адрес. Теперь здесь должен быть внутренний адрес сервера memcached:

Сохраните и закройте файл.

Перезапустите Memcached:

Убедитесь, что все работает правильно, с помощью команды netstat:

Проверьте подключение с внешнего клиента, чтобы убедиться, что вы все еще можете получить доступ к сервису. Рекомендуется также проверить доступ с неавторизованного клиента, чтобы убедиться, что брандмауэр не пропустит соединение.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: