Memcached — это бесплатное высокопроизводительное хранилище данных ключа в памяти с открытым исходным кодом. Он чаще всего используется для ускорения работы приложений путем кэширования различных объектов из результатов вызовов базы данных.
В этой статье мы рассмотрим процесс установки и настройки последней версии Memcached в Ubuntu 18.04. Те же инструкции применимы для Ubuntu 16.04 и любого дистрибутива на основе Ubuntu.
Предпосылки
Прежде чем продолжить эту статью, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo.
Установка Memcached
Пакеты Memcached включены в стандартные репозитории Ubuntu 18.04. Установка довольно проста, просто следуйте инструкциям ниже:
- Начните с обновления списка пакетов apt:
sudo apt update
- Установите Memcached, набрав:
sudo apt install memcached libmemcached-tools
Пакет libmemcached-tools содержит предоставляет несколько инструментов командной строки для управления Memcached сервером.
sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'
- После завершения установки служба Memcached запустится автоматически. Чтобы проверить состояние службы, введите следующую команду:
sudo systemctl status memcached
Вывод будет выглядеть так:
● memcached.service - memcached daemon Loaded: loaded (/lib/systemd/system/memcached.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2019-05-11 1435 PDT; 23s ago Docs: man:memcached(1) Main PID: 11833 (memcached) Tasks: 10 (limit: 2319) CGroup: /system.slice/memcached.service `-11833 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid
Вот и все, на данный момент Memcached установлен и работает на вашем сервере Ubuntu 18.04.
Настройка Memcached
Memcached можно настроить, отредактировав файл /etc/memcached.conf. Настройки конфигурации по умолчанию являются достаточными для большинства пользователей.
По умолчанию Memcached настроен на прослушивание только на локальном хосте. Если клиент, подключающийся к серверу, также работает на том же хосте, вам не нужно изменять файл конфигурации по умолчанию.
Удаленный доступ
При неправильной настройке Memcached можно использовать для выполнения атаки распределенного отказа в обслуживании (DDoS). Если вы хотите разрешить удаленный доступ к вашему серверу Memcached, вам необходимо настроить брандмауэр и разрешить доступ к UDP-порту Memcached 11211 только от доверенных клиентов.
В следующем примере предполагается, что вы хотите подключиться к серверу Memcached через частную сеть. 192.168.100.20IP-адрес сервера и IP-адрес клиента 192.168.100.30.
Ubuntu поставляется с инструментом настройки брандмауэра, который называется UFW. По умолчанию UFW установлен, но не включен. Перед включением брандмауэра UFW сначала добавьте правило, разрешающее входящие соединения SSH:
sudo ufw allow 22
Разрешить оценку с IP-адреса удаленного клиента:
sudo ufw allow from 192.168.100.30 to any port 11211
Включите UFW с помощью:
sudo ufw status
Как только ваш брандмауэр настроен, следующим шагом является редактирование конфигурации Memcached и настройка службы Memcached для прослушивания интерфейса частной сети сервера:
Для этого откройте файл конфигурации memcached.conf:
sudo nano /etc/memcached.conf
Найдите строку, которая начинается с -l 127.0.0.1 и замените 127.0.0.1 на IP-адрес сервера 192.168.100.20.
# Specify which IP address to listen on. The default is to listen on all IP addresses # This parameter is one of the only security measures that memcached has, so make sure # it's listening on a firewalled interface. -l 192.168.100.20
Перезапустите сервис Memcached, чтобы изменения вступили в силу:
sudo systemctl restart memcached
Теперь вы можете подключиться к серверу Memcached из удаленного местоположения.
Подключение к Memcached
Чтобы подключиться к серверу Memcached, вам нужно использовать клиенты, зависящие от языка.
PHP
Чтобы использовать Memcached в качестве кэширующей базы данных для вашего PHP- приложения, такого как WordPress, Drupal, Joomla или Magento, вам необходимо установить расширение php-memcached:
sudo apt install php-memcached
Python
Существует несколько библиотек Python для взаимодействия с memcache. Вы можете установить предпочитаемую библиотеку, используя pip:
pip install pymemcache
pip install python-memcached
Заключение
Вы узнали, как установить Memcached на ваш сервер Ubuntu 18.04.
Вы можете обратиться к Memcached Wiki для получения дополнительной информации по этой теме.