Разное

Memcached настройка: Установка и настройка кеширующего сервера Memcached

24.05.2021

Содержание

Установка и настройка memcached на VDS — Техническая поддержка — NetAngels

В данной статье рассмотрен процесс установки memcached для кэширования на VDS с Debian или Ubuntu, а так же установка расширений для работы с memcached для php и python.

Все действия в консоли сервера в рамках данной статьи производятся от имени суперпользователя root.

Устанавливаем и настраиваем memcached

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

# apt-get update
# apt-get install memcached

С этого момента memcached на сервере установлен и запущен. По-умолчанию он запускается с 64 мб памяти и доступен по адресу 127.0.0.1:11211. Если вы хотите изменить настройки по умолчанию, необходимо внести правки в файл /etc/memcached.conf, после чего перезапустить memcached:

# nano /etc/memcached.conf
# service memcached restart

Например, вы можете захотеть предоставить memcached больше или меньше памяти для хранения кэша, за что отвечает опция -m, запустить его на другом ip-адресе (например чтобы сделать его доступным с других серверов), за что отвечает опция

-l и так далее.

Обратите внимание, что в memcached не предусмотрено никакого механизма разграничения прав доступа, поэтому если вы хотите, чтобы memcached был доступен извне с других хостов, не забудьте ограничить перечень ip адресов, с которых он будет доступен, с помощью firewall.

Устанавливаем расширение для memcached в php

В php5 есть два расширения для работы с memcached: php5-memcache и php5-memcached. У второго расширения несколько более обширный API и больше предоставляемых возможностей. Кроме того, расширение php5-memcached использует для работы библиотеку libmemcached, в то время как расширение php5-memcache использует собственную реализацию взаимодействия с демоном memcached.

Установить можно как любое из этих расширений по отдельности, так и оба вместе. Достаточно просто:

# apt-get install php5-memcache
# apt-get install php5-memcached

У php5-memcache есть несколько доступных для настройки опций, редактирование которых осуществляется в файле /etc/php5/mods-available/memcache.ini.

После установки любого из этих расширений для вступления в силу новой конфигурации php необходимо перезапустить веб-сервер:

# service apache2 reload

Устанавливаем расширение для memcached в python

Как и в случае с php, в python есть два доступных расширения для работы с memcached: python-memcache, полностью написанное на python и, вероятно, более медленное, а так же python-pylibmc, использующее libmemcached для взаимодействия с memcached. Точно так же установлены могут быть оба расширения одновременно, либо любое из них по отдельности. Устанавливаются они с помощью команд:

# apt-get install python-memcache
# apt-get install python-pylibmc


Тарифы на облачные VDS и VPS

Highload.today — медиа для разработчиков

Софт — 21 час назад

Как автоматизировать копирование файлов

На многих проектах есть необходимость копирования огромных файлов — размером 0,5 Гб и более. Например, это может понадобиться для получения последней версии сборки разрабатываемого продукта. В процессе копирования могут возникать сбои или обрывы коннекта, и тогда копирование приходится начинать снова. Хочу поделиться с вами простым скриптом для Windows, который поможет автоматизировать этот процесс, сделать его проще, быстрее и надежнее.

Тестирование — 2 дня назад Editorial

Тестирование фронтенда на примере React-приложения

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

Фронтенд — 1 неделя назад Editorial

NPM CLI v7 — пять самых важных фич

В феврале 2021 года стал широко доступен апдейт NPM CLI до версии 7. Это одно из важнейших обновлений, в котором был представлен новый функционал и другие важные настройки, упрощающие процесс управления пакетами. Команда разработчиков смогла решить некоторые из распространенных проблем, с которыми сталкивались пользователи. Подробным обзором пяти новых возможностей NPM CLI v.7 поделился разработчик Сахан Амарша (Sahan Amarsha) в материале для Bits and Pieces. Ну а мы в свою очередь спешим поделиться его выводами с вами.

Фронтенд — 1 неделя назад Editorial

Tailwind CSS: за и против

По данным опроса The State of CSS 2020, больше всего разработчиков в мире, использующих CSS-фреймворки, сейчас заинтересованы в изучении и применении Tailwind CSS. Он опережает конкурентов в этом рейтинге уже второй год подряд. Команда Tailwind предлагает альтернативный подход для поддержки и стилизации HTML-разметки, но у него есть и свои противники. Проштудировав статьи и комментарии на таких ресурсах, как Dev.to, Product Hunt и Codeburst, мы собрали наиболее популярные доводы за и против использования этого фреймворка.

Софт — 1 неделя назад Editorial

На каком ПО летают на Марсе?

18 февраля состоялось историческое событие, НАСА успешно посадила ровер Perseverance (в переводе на русский — “Настойчивость”) на Марс. Казалось бы, ничего необычного? НАСА проделывала это уже не раз в поиске ответа на вечный вопрос: есть ли жизнь на Марсе?

Мобильные приложения — 1 неделя назад Editorial

Как сделать из веб-сайта веб-приложение (а главное — зачем?)

В своем блоге индийский разработчик Шашват Верма (Shashwat Verma) рассказал, как преобразовать веб-сайт или веб-страницу в прогрессивное веб-приложение (PWA). В качестве примера программист создал PWA из простой классической игры Simon на основе HTML5 (вот ее гитхаб-репозиторий), которую после преобразования можно устанавливать в формате веб-приложения на устройства Android и iOS.

Установка и защита Memcached на Ubuntu 18.04 – База знаний Timeweb Community

Введение

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

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

Требования

Перед тем, как приступить к выполнению дальнейших действий, убедитесь, что на вашем сервере установлена ОС Ubuntu 18.04 с файерволом, а также есть пользователь, который может выполнять команды sudo.

Шаг 1: установка Memcached из официальных репозиториев

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

А потом установите Memcached:


$ sudo apt install memcached

Можно сразу установить библиотеку libmemcached-tools, в которой есть несколько полезных инструментов для работы с сервером:


$ sudo apt install libmemcached-tools

Установка Memcached выполнена, и теперь надо перейти к безопасности.

Шаг 2: защита настроек Memcached

Сначала надо проверить настройки в конфигурационном файле, который находится в /etc/memcached.conf. Откройте его в nano или другом редакторе:


$ sudo nano /etc/memcached.conf

Найдите вот эту строчку:

Это настройка по умолчанию, которую менять не нужно. Однако из соображений безопасности в конце файла можно добавить строчку, отключающую протокол UDP (но не влияющую на работу протокола TCP):

После этого сохраните и закройте файл.

Теперь сервис нужно перезапустить, чтобы изменения вступили в силу:


$ sudo systemctl restart memcached

Убедиться в том, что Memcached слушает локальный интерфейс и TCP соединения, можно командой:

Вывод должен быть таким:


Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address           Foreign Address  State    PID/Program name

. . .

tcp     0   0 127.0.0.1:11211      0.0.0.0:*            LISTEN   2279/memcached

. . .

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

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

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

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

Введите команду:


$ memcstat --servers="127.0.0.1"

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


Server: 127.0.0.1 (11211)

      pid: 2279

      uptime: 65

      time: 1546620611

      version: 1. 5.6

. . .

Теперь нужно открыть конфигурационный файл:


$ sudo nano /etc/memcached.conf

В конце файла добавьте -S для того, чтобы включить SASL:

И раскомментируйте строку -vv:

Это нужно для того, чтобы в /var/log/memcached формировался подробный отчет с предупреждениями, ошибками и другой важной информацией.

После этого сохраните и закройте файл.

Снова перезапустите Memcached:


$ sudo systemctl restart memcached

Посмотрите логи, чтобы проверить, включен ли SASL:


$ sudo journalctl -u memcached

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


. . .

Jan 31 15:34:28 memcached systemd-memcached-wrapper[2310]: Initialized SASL.

. . .

Еще раз введите команду:


$ memcstat --servers="127.0.0.1"

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

Добавление аутентификации пользователя

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


$ sudo apt install sasl2-bin

Теперь создайте директорию и файл с настройками SASL для Memcached:


$ sudo mkdir /etc/sasl2

$ sudo nano /etc/sasl2/memcached.conf

Добавьте в этот файл следующее:


mech_list: plain

log_level: 5

sasldb_path: /etc/sasl2/memcached-sasldb2

Если в mech_list, то есть в списке механизмов прописан plain, это значит, что cервер будет проверять идентификатор аутентификации и пароль на соответствие своей базе и наличие у данного идентификатора аутентификации права на идентификатор авторизации. Это аутентификация посредством открытого текстового пароля; путь к файлу будет указан позже. Сохраните и закройте этот файл.

Следующий шаг — создание базы данных SASL с данными вашего пользователя. Команда saslpasswd2 используется для занесения паролей в БД; ключ -c используется для создания записи для указанного идентификатора, если она не существовала ранее. Ключ -f позволяет указать путь к базе данных.


$ sudo saslpasswd2 -a memcached -c -f /etc/sasl2/memcached-sasldb2 имя_пользователя

Теперь нужно изменить права:


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

И перезапустить Memcached:


$ sudo systemctl restart memcached

Снова введите команду memcstat, но на этот раз с указанными до этого данными:


$ memcstat --servers="127.0.0.1" --username=имя_пользователя --password=пароль

Вы должны увидеть вывод:


Server: 127.0.0.1 (11211)

      pid: 2772

      uptime: 31

      time: 1546621072

      version: 1.5.6 Ubuntu

. . .

Если вы его увидели, значит, Memcached и SASL работают корректно.

Как установить Memcached на Debian 10

Memcached – это бесплатное высокопроизводительное хранилище данных типа “ключ-значение” в памяти с открытым исходным кодом. Обычно он используется для ускорения приложений путем кэширования различных объектов из результатов API и вызовов базы данных.

В этой статье показано, как установить и настроить Memcached в Debian 10.

 

Предпосылки

Вам нужно будет войти в систему как пользователь с доступом sudo, чтобы иметь возможность устанавливать пакеты в вашей системе Debian.

 

Установка Memcached на Debian 10

Пакет memcached включен в репозитории Ubuntu 20.04 по умолчанию. Чтобы установить его, введите следующую команду от имени пользователя root или пользователя с привилегиями sudo:

sudo apt update
sudo apt install memcached libmemcached-tools

 

Пакет libmemcached-tools предоставляет несколько инструментов командной строки для взаимодействия с Memcached сервером.

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

sudo systemctl status memcached

 

Результат будет выглядеть так:

● memcached. service - memcached daemon
   Loaded: loaded (/lib/systemd/system/memcached.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2020-08-14 14:22:01 CDT; 3min 40s ago
     Docs: man:memcached(1)
...

 

Вот и все. Вы успешно установили Memcached на свой сервер Debian 10.

 

Настройка Memcached

Параметры Memcached можно настроить в файле /etc/memcached.conf. Для большинства пользователей достаточно настроек конфигурации по умолчанию.

 

Удаленный доступ

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

При неправильной настройке Memcached может использоваться для выполнения распределенной атаки типа «отказ в обслуживании» (DDoS). Чтобы разрешить удаленные подключения к серверу Memcached, вам необходимо настроить брандмауэр и разрешить доступ к UDP-порту 11211 Memcached только для доверенных клиентов.

В следующем примере предполагается, что вы подключаетесь к серверу Memcached через частную сеть. IP-адрес сервера 192.168.100.20 и IP-адрес клиента 192.168.100.30

Первый шаг – отредактировать конфигурацию memcached и настроить службу на прослушивание через частный сетевой интерфейс сервера:

Для этого откройте файл конфигурации memcached.conf:

sudo nano /etc/memcached.conf

 

Найдите строку, которая начинается с -l 127.0.0.1 и замените 127.0.0.1 на IP-адрес сервера 192.168.100.20.

/etc/memcached.conf

 

Перезапустите службу Memcached, чтобы изменения вступили в силу:

sudo systemctl restart memcached

 

После настройки службы следующим шагом будет открытие порта memcached в брандмауэре.

sudo ufw allow from 192.168.100.30 to any port 11211

 

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

 

Подключение к Memcached

Существует множество реализаций клиентов memcached, написанных для разных языков программирования.

 

PHP

Чтобы использовать Memcached в качестве базы данных кэширования для вашего приложения PHP, такого как WordPress, Drupal или Magento, вам необходимо установить расширение php-memcached:

sudo apt install php-memcached

 

Python

Есть несколько библиотек Python для взаимодействия с memcache. Вы можете установить предпочитаемую библиотеку с помощью pip:

pip install pymemcache

 

pip install python-memcached

 

Вывод

Мы показали вам, как установить Memcached на Debian 10. Для получения дополнительной информации по этой теме обратитесь к Memcached Wiki.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии ниже.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Установка и настройка memcached на CentOS 7 + PHP 5.6

Дело в том, что установить memcached стандартным образом на CentOS 7 сейчас нельзя, потому что с этой ОС идет PHP 5.6, а в репозитарии лежит уже новая версия memcached 3, которая требует PHP 7 и выше.

Выполняем установку memcached:



Отредактируем файл:


$ vim /etc/sysconfig/memcached

$ vim /etc/sysconfig/memcached


Убедитесь, что в данном файле конфигурации имеются следующие строки:


1
2
3
4
5
PORT="11211"  
USER="memcached"  
MAXCONN="256"  
CACHESIZE="64"  
OPTIONS="-l 127.0.0.1"

PORT=»11211″ USER=»memcached» MAXCONN=»256″ CACHESIZE=»64″ OPTIONS=»-l 127.0.0.1″


  • PORT 11211 является портом прослушивания по умолчанию для Memcached.
  • USER — это пользователь memcached от которого будет запущен демон.
  • MAXCONN — максимальные количество возможных соединений.
  • CACHESIZE — это количество мегабайт (64 MB) для использования, если у вас есть много трафика, это хорошо для большинства малых/средних сайтов. Для загруженного сервера вы можете увеличить его на 512 или 1 Гб (1024 MB).
  • OPTIONS=»-l 127.0.0.1″ — это означает что memcached будет слушать только на localhost-е, избегая каких-либо внешних подключений. По умолчанию он установлен в INADDR_ANY.

запуск Memcached выполняется:

1
2
3
# systemctl enable memcached
 
# systemctl start memcached

# systemctl enable memcached # systemctl start memcached

Установка PHP расширений и библиотек с Memcached.

выполняем:

# yum install php-pear php-devel zlib-devel libmemcached-devel

# yum install php-pear php-devel zlib-devel libmemcached-devel

На этой стадии расширение pecl_http версии 3 нам установить не удастся, из-за несовместимости версий.

Также, для успешного компилирования pecl потребуется установить два дополнительных пакета, которые являются пререквизитами компиляции:

1
2
3
# yum install php-raphf
 
# yum install php-propro

# yum install php-raphf # yum install php-propro

 

Далее в файл php.ini (e меня он лежит в /usr/local/php/php.ini) необходимо добавить строчки, которые инициализируют расширения:

1
2
3
extension=raphf.so
extension=propro.so
extension=http.so

extension=raphf.so extension=propro.so extension=http.so

Вот теперь можно установить pecl_http версии 2 командой:

# pecl install pecl_http-2.5.5

# pecl install pecl_http-2.5.5

Запустится установка и компиляции PHP. Установка спросит, где найти библиотеки zlib (если не сможет её найти), raphf и propro. Необходимо указать путь:

/usr/lib64/

Далее ставим еще одну библиотеку-расширение:

yum install php-pecl-memcached. x86_64

yum install php-pecl-memcached.x86_64

И наконец, может скомпилировать PHP с Memcached 2 версии:

pecl install memcached-2.2.0

pecl install memcached-2.2.0

Во время установки pecl попросит уточнить, расположение библиотеки libmemcached (файл memcached.h).

Не надо указывать полный путь к ней! Дело в том, что в скрипте ./configure проверяется такой путь:

"$PHP_LIBMEMCACHED_DIR/include/libmemcached/memcached.h"

Таким образом, вам надо указать лишь часть пути:

<strong>/usr</strong>

В конце в файл php.ini добавляем строчку инициализации:

Вообще, при компилации должен создаться файл /etc/php.d/50-memcached.ini, который уже содержит в себе строчку инициализации, но для верности лучше это добавить в основной файл (по крайней мере так рекомендует установщик).

После этого перезапускаем сервисы memcached и httpd/nginx

systemctl restart memcached.service
 
systemctl restart httpd.service

systemctl restart memcached.service systemctl restart httpd.service

Проверяем, что модуль PHP запущен:

[Посещений: 105, из них сегодня: 1]

Понравилась публикация? Почему нет? Оставь коммент ниже или подпишись на feed и получай список новых статей автоматически через feeder.

Memcached — ускорение процесса загрузки страниц

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

Memcached малозатратен для вычислительного ресурса, а время на выполнение любой операции никак не зависит от хранимого в нем количества ключей. По времени отклик сервера memcached связан только с сетевыми настройками. Работает на большинстве платформ; чтобы начать пользоваться технологией, требуется модуль php.


СерверБаза данныхmemcashed1memcashed2memcashed3

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

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

Разберемся в отличиях, чтоб не путать эти понятия.

Про Memcached мы уже установили выше, что это кеширующий сервер, в основном его понимают именно так. Memcache же – это php-расширение для управления этим сервером. Однако существует и php-расширение Memcached.

Несмотря на производительность, у Memcache меньше возможностей для управления сервером, поэтому было создано расширение Memcached.

Какое ПО в итоге устанавливать зависит от запросов по функционалу. Если требуются особые настройки, то лучше выбирать расширение Memcached.

Это следует анализировать отдельно для каждого случая.

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

Истек срок хранения

Но это нельзя назвать прямой потерей, так как этот срок выставляется при самой настройке.

Не хватило памяти для хранения других ключей.

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

Сбой процесса работы сервера или самого memcached.

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

Установка и настройка Memcached | IT Knowledge Base

1. Обновляем системку.

Перед тем, как установить любое программное обеспечение, важно, убедиться, что система находится в актуальном состоянии, выполнив эти следующие команды apt в терминале:

apt update
apt upgrade

 

Шаг 2. Установка Memcached.

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

apt install memcached netcat

 

Шаг 3. Конфигурация Memcached.

Файл конфигурации по умолчанию, можно найти по адресу:

vi /etc/memcached.conf

 

По умолчанию, в Memcached отведено на использование 64 мегабайта оперативной памяти.

Измените настройки, внизу показан пример настройки для кэширования 1024:

# Start with a cap of 64 megs of memory. It's reasonable, and the daemon default
# Note that the daemon will grow to this size, but does not start out holding this much
# memory
-m 1024
 
# Default connection port is 11211
-p 11211
 
# Run the daemon as root. The start-memcached will default to running as root if no
# -u command is present in this config file
-u memcache
 
# 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 127.0.0.1

 

Выйдите и сохраните файл конфигурации, а затем перезапустите Memcached:

systemctl restart memcached
systemctl enable memcached

 

Шаг 4. Установка расширение PHP для Memcached.

Вам также потребуется установить необходимое расширение PHP для Memcached:

apt install php-memcached

 

Теперь  перезапускаем Apache, чтобы изменения вступили в силу:

systemctl restart apache2

Система кэширования объектов распределенной памяти

О Memcached

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

Вы можете думать об этом как о краткосрочной памяти для ваших приложений.

Что он делает

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

memcached также позволяет лучше использовать память. если ты рассмотрите диаграмму справа, вы можете увидеть два развертывания сценарии:

  1. Каждый узел полностью независим (вверху).
  2. Каждый узел может использовать память других узлов (внизу).

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

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

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

На иллюстрации справа показаны только два веб-сервера для простота, но свойство остается таким же, как номер увеличивается. Если бы у вас было пятьдесят веб-серверов, у вас все равно был бы полезный размер кеш-памяти в первом примере составляет 64 МБ, но во втором вы должны иметь 3,2 ГБ полезного кеша.

Конечно, вам не обязательно использовать память вашего веб-сервера для кеш. Многие пользователи memcached имеют выделенные машины, которые построены быть только серверами memcached.

Происхождение

Memcached был первоначально разработан Брэдом Фицпатриком для LiveJournal в 2003 году.

Авторы

дормандо (684) Dustin Sallings (214) Брэд Фицпатрик (164) Тронд Норбай (130)
Пол Линднер (58) Тору Маесака (34) Стивен Гримм (25) Дэвид Карлиер (17)
Станислав Питуча (16) Анатолий Воробей (15) Стив Йен (15) Брайан Акер (14)
Томаш Бречко (12) minkikim89 (10) Таранга Гамэтиге (8) Кевин Линь (7)
хачи (7) Аарон Стоун (6) Дэн МакГи (6) Гийом Делакур (6)
Канак Кшетри (6) Ола Джеппссон (6) Стив Уиллс (6) Даниэль Шеммель (5)
Эван Мартин (5) Мэтт Ингентрон (5) Мирослав Личварь (5) Питер (Стиг) Эдвардс (5)
Томас Корбар (5) Крис Гоффине (4) Крейг Эндрюс (4) Эрик МакКонвилл (4)
Джефти Негапатан (4) Виктор Киркебо (4) Нигматулин Андрей Анатольевич (3) Калин Иоргулеску (3)
Кэмерон Норман (3) Даниэль Панеда (3) Эрик Ламберт (3) Джей Гриззард (3)
Пол Фуртадо (3) Цанга Реми (3) сергиокарлос (3) Антоний Довгаль (2)
Brion Vibber (2) Карл Майерс (2) Клинт Байрам (2) Колин Питрат (2)
Козимо Стреппоне (2) Дэвид Бремнер (2) Володин Дмитрий (2) Дуг Портер (2)
Эрик Ходел (2) Эван Миллер (2) Джованни Бечис (2) Икрам Махмуд (2)
Дж. Гризард (2) Джейсон ЧАН (2) Джей Бончи (2) Жан-Франсуа БЮСТАРРЕ (2)
Джош Сореф (2) Линкерист (2) Мат Хостеттер (2) Монти Тейлор (2)
Паоло Борелли (2) Рики Чжоу (2) Шив Нагараджан (2) Тианон Грави (2)
Вадим Пуштаев (2) 祁冰 (2) Адам Чейнз (1) Адам Диксон (1)
Адам Шкода (1) Адам Томасон (1) Алекс Леоне (1) Александр Пыхалов (1)
Али Саиди (1) Alwayswithme (1) Андре Азеведо Пинто (1) Эндрю Дрейк (1)
Андрей Глинский (1) Андрей Няхайчик (1) Энтони Райан (1) Артур Бергман (1)
Бен Эванс (1) Бернхард М.Видеманн (1) Калеб Шай (1) CaptTofu (1)
Чанг Сонг (1) Чармандер (1) Чен-Ю Цай (1) Клинтон Уэбб (1)
Дагоберт Михельсен (1) Дэн Кристиан (1) Дэниел Бирн (1) Дэвид Дж. М. Карлсен (1)
Давид Оливейра (1) Дэвид Филлипс (1) Дэвид Шон (1) Исайкин Дмитрий (1)
Дон МакАскилл (1) Эйити Цуката (1) Эли Бингхэм (1) Элизабет Маттийсен (1)
Эван Клитцке (1) Песня Фангруй (1) Филипе Лаборде (1) Форди (1)
Фумихиро Ито (1) Габриэль А.Самфира (1) Глейкон Мораес (1) Гордон Франке (1)
Грант Мэтьюз (1) Грегор Ясный (1) Гвидо Иакинти (1) Хузайфа Сидхпурвала (1)
Иэн Уэйд (1) Ян Миелл (1) Джеймс Коэн (1) Джейми Маккарти (1)
Джейсон Титус (1) Джефф Лоусон (1) Джереми Соуден (1) Джо Ортон (1)
Йохан Бергстрём (1) Джон Лесли (1) Джон Дженсен (1) Джонатан Бастьен-Филиатро (1)
Джонатан Штайнерт (1) Джош Купершмидт (1) Юлий В. Чирков (1) Йорген Ауствик (1)
Кеннет Стил (1) Кейур (1) Клебер (1) Лиза Селье (1)
Леон Брокар (1) Максим Жилинский (1) Маниш Катияр (1) Марк Хаггер (1)
Цветанов Мартин Григоров (1) Матье КАРБОННО (1) Мэтт Фаулз Кулукундис (1) Мэтью Шафер (1)
Маттиас Джениар (1) Максим Дунин (1) Менган (1) Майкл Алан Дорман (1)
Майк Диллон (1) Миклош Вайна (1) Натанаэль Копа (1) Нейт (1)
Натан Нойлингер (1) Ник (1) Ник Фрост (1) Ори Шалев (1)
Оскари Сааренмаа (1) Пол Куэрна (1) Питер ван Дейк (1) Петр Бальцер (1)
Цянь Ли (1) Ричард Руссо (1) Ривер Тарнелл (1) Роман Мюллер (1)
Райан МакКаллаг (1) Райан Т. Декан (1) Райан Томайко (1) Сайлеш Мукил (1)
Саман Барги (1) Сергей Трофимович (1) Шариф Нассар (1) Саймон Лю (1)
Сьон Гортензиус (1) Шридхар Самудрала (1) Стив Питерс (1) Тао Хуэй (1)
Тед Шундлер (1) Тео Наджим (1) Томас ван Гулик (1) Тим Ярдли (1)
Томас Калибера (1) Торстен Фёрч (1) Владимир (1) Крыло Лиан (1)
Юн Юэ Сун (1) Чжэн Гу (1) Акисса (1) битовое изображение (1)
кларк.кан (1) githublvv (1) hayashier (1) хиратство (1)
iqr4m (1) js (1) jwbee (1) Kenvifire (1)
кун (1) любу (1) liwenlong05 (1) мккельвин (1)
лей (1) метеорган (1) Мивассон (1) Нил-Чжу (1)
nirvanazc (1) фантом 9999 (1) пкаруманчи9 (1) прудхви (1)
q66 (1) тэблоп (1) Ванкан-ху (1) ююрюр (1)
жоутай (1) 伊藤 洋 也 (1)

Как установить и настроить Memcached в Ubuntu

Memcached — это бесплатная система кэширования в памяти с открытым исходным кодом, которая ускоряет работу веб-приложений за счет кэширования больших объемов данных в памяти, которые генерируются из запросов загрузки страниц или вызовов API. Memcached особенно полезен для ускорения работы веб-приложений на основе PHP, таких как WordPress, Joomla, , Drupal , а также приложений Python.

В этом руководстве мы рассмотрим, как установить Memcached на Ubuntu . В демонстрационных целях мы будем использовать Ubuntu 20.04 Focal Fossa . Конечно, то же руководство применимо к Ubuntu 16.04 и более поздним версиям.

Предварительные требования

По мере продвижения убедитесь, что у вас есть на чеке следующее:

А теперь закатываем рукава и ныряем.

Установка Memcached в Ubuntu Server

Перед установкой Memcached давайте сначала обновим список пакетов, установленных с помощью команды apt.

 $ sudo apt update
 
Обновите Ubuntu 20.04 Server

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

 $ sudo apt установить memcached libmemcached-tools
 
Установить Memcached в Ubuntu 20.04

При появлении запроса нажмите ‘Y’ на клавиатуре и нажмите ENTER , чтобы продолжить установку.

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

 $ sudo systemctl status memcached
 
Проверьте состояние Memcached

. Вывод подтверждает, что Memcached запущен и работает.

Настройка Memcached в Ubuntu

Файл конфигурации по умолчанию для Memcached /etc/memcached.conf . Также важно отметить, что по умолчанию Memcached прослушивает порт 11211 и настроен для прослушивания в системе localhost . Вы можете подтвердить это, проверив файл конфигурации в строке 35, как показано.

 $ sudo nano /etc/memcached.conf
 
Проверьте конфигурацию Memcached

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

Предположим, у вас есть удаленный клиент с IP-адресом 192.168.2.105 , на котором запущено приложение, которому необходимо подключиться к сервису Memcached. Чтобы разрешить доступ, просто удалите IP-адрес localhost ( 127.0.0.1 ) и замените его IP-адресом удаленного клиента. Предполагается, что обе системы находятся в одной локальной сети.

 -l 192.168.2.105
 
Настроить Memcached Connection

Сохраните файл конфигурации и выйдите из него.

Затем перезапустите службу Memcached , чтобы изменения вступили в силу.

 $ sudo systemctl перезапуск memcached
 

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

Для этого выполните команды:

 $ sudo ufw разрешить 11211 / tcp
 

Затем перезагрузите брандмауэр, чтобы изменения вступили в силу.

 $ sudo ufw reload
 

Чтобы убедиться, что порт открыт, выполните:

 $ sudo ufw статус
 
Откройте порт Memcached на брандмауэре UFW

Включение Memcached для приложений

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

Для приложений PHP , таких как Joomla или WordPress , выполните команду ниже, чтобы установить дополнительные пакеты:

 $ sudo apt установить php-memcached
 
Установите Memcached PHP Extension

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

 $ pip установить pymemcache
$ pip установить python-memcached
 

На этом мы завершаем нашу тему о том, как установить и настроить Memcached на Ubuntu . Ваш отзыв будет очень признателен.

Если вы цените то, что мы делаем здесь, на TecMint, вам следует принять во внимание:

TecMint — это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей доступны БЕСПЛАТНО для всех.

Если вам нравится то, что вы читаете, пожалуйста, купите нам кофе (или 2) в знак признательности.

Мы благодарны за вашу бесконечную поддержку.

Как установить и защитить Memcached в Ubuntu 16.04

Введение

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

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

Предварительные требования

В этом руководстве предполагается, что у вас есть сервер, настроенный с пользователем sudo без полномочий root и базовым брандмауэром.Если это не так, настройте следующее:

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

Шаг 1. Установка Memcached из официальных репозиториев

Если на вашем сервере еще не установлен Memcached, вы можете установить его из официальных репозиториев Ubuntu. Во-первых, убедитесь, что ваш локальный индекс пакета обновлен:

  

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

  
  • sudo apt-get install memcached

Мы также можем установить libmemcached-tools , библиотеку, которая предоставляет несколько инструментов для работы с вашим сервером Memcached:

  
  • sudo apt-get установить libmemcached-tools

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

Шаг 2. Защита настроек конфигурации Memcached

Чтобы убедиться, что наш экземпляр Memcached прослушивает локальный интерфейс 127.0.0.1 , мы проверим значение по умолчанию в файле конфигурации, расположенном по адресу /etc/memcached.conf . Текущая версия Memcached, поставляемая с Ubuntu и Debian, имеет параметр -l , установленный для локального интерфейса, что предотвращает атаки типа «отказ в обслуживании» из сети.Мы можем проверить этот параметр, чтобы убедиться, что он установлен правильно.

Вы можете открыть /etc/memcached.conf с помощью nano :

  
  • sudo nano /etc/memcached.conf

Чтобы проверить настройки интерфейса, найдите в файле следующую строку:

/etc/memcached.conf

 . . .
-l 127.0.0.1
  

Если вы видите настройку по умолчанию -l 127.0.0.1 , то нет необходимости изменять эту строку.Если вы измените этот параметр, чтобы сделать его более открытым, то также неплохо было бы отключить UDP, поскольку он с большей вероятностью будет использован при атаках типа «отказ в обслуживании». Чтобы отключить UDP (оставив TCP незатронутым), добавьте в конец этого файла следующую опцию:

/etc/memcached. conf

 . . .
-U 0
  

Сохраните и закройте файл, когда закончите.

Перезапустите службу Memcached, чтобы изменения вступили в силу:

  
  • sudo systemctl перезапустить memcached

Убедитесь, что Memcached в настоящее время привязан к локальному интерфейсу и прослушивает только TCP-соединения, набрав:

  

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

  

Выход

Активные интернет-соединения (только серверы) Proto Recv-Q Send-Q Локальный адрес Внешний адрес Состояние PID / Имя программы .. . tcp 0 0 127.0.0.1:11211 0.0.0.0:* СЛУШАТЬ 2383 / memcached . . .

Это подтверждает, что memcached привязан к адресу 127.0.0.1 , используя только TCP.

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

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

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

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

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

  
  • memcstat --servers = "127.0,0.1 "

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

  

Выход

Сервер: 127.0.0.1 (11211) pid: 3831 время безотказной работы: 9 время: 1520028517 версия: 1.4.25 . . .

Теперь мы можем перейти к включению SASL. Сначала мы добавим параметр -S в /etc/memcached.conf . Откройте файл снова:

  
  • sudo nano /etc/memcached.conf

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

/ и т. Д. / Memcached.конф

 . . .
-S
  

Затем найдите и раскомментируйте параметр -vv , который предоставит подробный вывод в / var / log / memcached . Строка без комментария должна выглядеть так:

/etc/memcached.conf

 . . .
-vv
  

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

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

  
  • sudo systemctl перезапустить memcached

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

  
  • sudo journalctl -u memcached

Вы должны увидеть следующую строку, указывающую, что поддержка SASL была инициализирована:

  

Выход

.. . 02 марта 22:03:58 memcached systemd-memcached-wrapper [2760]: инициализированный SASL. . . .

Мы можем снова проверить подключение, но поскольку SASL был инициализирован, эта команда должна завершиться ошибкой без аутентификации:

  
  • memcstat --servers = "127.0.0.1"

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

  

$? всегда будет возвращать код выхода последней выполненной команды.Обычно все, кроме 0 , указывает на сбой процесса. В этом случае мы должны увидеть статус выхода 1 , который говорит нам, что команда memcstat не удалась.

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

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

  
  • sudo apt-get install sasl2-bin

Затем мы создадим каталог и файл, которые Memcached проверит на предмет параметров конфигурации SASL:

  
  • судо mkdir -p / etc / sasl2
  • судо нано / и т.д. / sasl2 / memcached.конф

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

/etc/sasl2/memcached.conf

  mech_list: plain
log_level: 5
sasldb_path: / и т.д. / sasl2 / memcached-sasldb2
  

В дополнение к определению нашего уровня ведения журнала мы установим mech_list на plain , что говорит Memcached, что он должен использовать свой собственный файл паролей и проверять пароль в виде открытого текста. Мы также укажем путь к файлу пользовательской базы данных, который мы создадим дальше.Сохраните и закройте файл, когда закончите.

Теперь мы создадим базу данных SASL с нашими учетными данными. Мы будем использовать команду saslpasswd2 , чтобы создать новую запись для нашего пользователя в нашей базе данных, используя параметр -c . Нашим пользователем будет sammy , но вы можете заменить это имя своим собственным пользователем. Используя опцию -f , мы укажем путь к нашей базе данных, который будет тем путем, который мы установили в /etc/sasl2/memcached.conf :

  
  • sudo saslpasswd2 -a memcached -c -f / etc / sasl2 / memcached-sasldb2 Сэмми

Наконец, мы дадим пользователю memcache право собственности на базу данных SASL:

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

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

  
  • sudo systemctl перезапустить memcached

Повторный запуск memcstat подтвердит, сработал ли наш процесс аутентификации. На этот раз мы запустим его с нашими учетными данными для аутентификации:

  
  • memcstat --servers = "127.0.0.1" --username = sammy --password = your_password

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

  

Выход

Сервер: 127.0.0.1 (11211) pid: 3831 время безотказной работы: 9 время: 1520028517 версия: 1.4.25 . . .

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

Шаг 4 — Разрешение доступа через частную сеть (необязательно)

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

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

Ограничение IP-доступа с помощью межсетевых экранов

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

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

  
  • sudo ufw разрешить с client_servers_private_IP / 32 на любой порт 11211

Вы можете узнать больше о брандмауэрах UFW, прочитав наше руководство по основам ufw.

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

Привязка Memcached к интерфейсу частной сети

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

Мы можем снова открыть файл /etc/memcached.conf , набрав:

  
  • sudo nano /etc/memcached.conf

Внутри найдите строку -l 127.0.0.1 , которую вы проверили или изменили ранее, и измените адрес, чтобы он соответствовал интерфейсу частной сети вашего сервера:

/ и т. Д. / Memcached.конф

 . . .
-l memcached_servers_private_IP
. . .
  

Сохраните и закройте файл, когда закончите.

Затем перезапустите службу Memcached:

  
  • sudo systemctl перезапустить memcached

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

  
  

Выход

Активные интернет-соединения (только серверы) Proto Recv-Q Send-Q Локальный адрес Внешний адрес Состояние PID / Имя программы .. . tcp 0 0 memcached_servers_private_IP: 11211 0.0.0.0:* СЛУШАТЬ 2383 / memcached . . .

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

Заключение

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

Чтобы узнать больше о Memcached, ознакомьтесь с документацией по проекту. Для получения дополнительной информации о том, как работать с Memcached, см. Наше руководство по установке и использованию Memcache в Ubuntu 14.04.

Как установить и защитить Memcached в Ubuntu 18.04

Введение

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

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

Предварительные требования

В этом руководстве предполагается, что у вас есть сервер, настроенный с пользователем без полномочий root sudo и базовым брандмауэром.Если это не так, настройте следующее:

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

Шаг 1. Установка Memcached из официальных репозиториев

Если на вашем сервере еще не установлен Memcached, вы можете установить его из официальных репозиториев Ubuntu. Во-первых, убедитесь, что ваш локальный индекс пакета обновлен:

  

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

  
  • sudo apt установить memcached

Мы также можем установить libmemcached-tools , библиотеку, которая предоставляет несколько инструментов для работы с вашим сервером Memcached:

  
  • sudo apt установить libmemcached-tools

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

Шаг 2. Защита настроек конфигурации Memcached

Чтобы убедиться, что наш экземпляр Memcached прослушивает локальный интерфейс 127.0.0.1 , мы проверим значение по умолчанию в файле конфигурации, расположенном по адресу /etc/memcached.conf . Текущая версия Memcached, поставляемая с Ubuntu и Debian, имеет параметр -l , установленный для локального интерфейса, что предотвращает атаки типа «отказ в обслуживании» из сети.Мы можем проверить этот параметр, чтобы убедиться, что он установлен правильно.

Вы можете открыть /etc/memcached.conf с помощью nano :

  
  • sudo nano /etc/memcached.conf

Чтобы проверить настройки интерфейса, найдите в файле следующую строку:

/etc/memcached.conf

 . . .
-l 127.0.0.1
. . .
  

Если вы видите настройку по умолчанию -l 127.0.0.1 , то нет необходимости изменять эту строку.Если вы измените этот параметр, чтобы сделать его более открытым, то также неплохо было бы также отключить UDP, так как он с большей вероятностью будет использован в атаках типа «отказ в обслуживании». Чтобы отключить UDP (оставив TCP незатронутым), добавьте в конец этого файла следующую опцию:

/etc/memcached.conf

 . . .
-U 0
  

Сохраните и закройте файл, когда закончите.

Перезапустите службу Memcached, чтобы изменения вступили в силу:

  
  • sudo systemctl перезапустить memcached

Убедитесь, что Memcached в настоящее время привязан к локальному интерфейсу и прослушивает только TCP-соединения, набрав:

  

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

  

Выход

Активные интернет-соединения (только серверы) Proto Recv-Q Send-Q Локальный адрес Внешний адрес Состояние PID / Имя программы . . . tcp 0 0 127.0.0.1:11211 0.0.0.0:* СЛУШАТЬ 2279 / memcached . . .

Это подтверждает, что memcached привязан к адресу 127.0.0.1 , используя только TCP.

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

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

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

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

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

  
  • memcstat --servers = "127.0,0.1 "

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

  

Выход

Сервер: 127.0.0.1 (11211) pid: 2279 время безотказной работы: 65 время: 1546620611 версия: 1.5.6 . . .

Теперь мы можем перейти к включению SASL. Сначала мы добавим параметр -S в /etc/memcached.conf . Откройте файл снова:

  
  • sudo nano /etc/memcached.conf

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

/ и т. Д. / Memcached.конф

 . . .
-S
  

Затем найдите и раскомментируйте параметр -vv , который предоставит подробный вывод в / var / log / memcached . Строка без комментария должна выглядеть так:

/etc/memcached.conf

 . . .
-vv
  

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

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

  
  • sudo systemctl перезапустить memcached

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

  
  • sudo journalctl -u memcached

Вы должны увидеть следующую строку, указывающую, что поддержка SASL была инициализирована:

  

Выход

.. . 04 января, 16:51:12 memcached systemd-memcached-wrapper [2310]: инициализированный SASL. . . .

Мы можем снова проверить подключение, но поскольку SASL был инициализирован, эта команда должна завершиться ошибкой без аутентификации:

  
  • memcstat --servers = "127.0.0.1"

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

  

$? всегда будет возвращать код выхода последней выполненной команды.Обычно все, кроме 0 , указывает на сбой процесса. В этом случае мы должны увидеть статус выхода 1 , который говорит нам, что команда memcstat не удалась.

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

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

  
  • sudo apt install sasl2-bin

Затем мы создадим каталог и файл, которые Memcached проверит на предмет параметров конфигурации SASL:

  
  • судо mkdir / etc / sasl2
  • судо нано / и т.д. / sasl2 / memcached.конф

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

/etc/sasl2/memcached.conf

  mech_list: plain
log_level: 5
sasldb_path: / и т. д. / sasl2 / memcached-sasldb2
  

В дополнение к определению нашего уровня ведения журнала мы установим mech_list на plain , что говорит Memcached, что он должен использовать свой собственный файл паролей и проверять пароль в виде открытого текста. Мы также укажем путь к файлу пользовательской базы данных, который мы создадим дальше.Сохраните и закройте файл, когда закончите.

Теперь мы создадим базу данных SASL с нашими учетными данными. Мы будем использовать команду saslpasswd2 , чтобы создать новую запись для нашего пользователя в нашей базе данных, используя параметр -c . Нашим пользователем будет sammy , но вы можете заменить это имя своим собственным пользователем. Используя опцию -f , мы укажем путь к нашей базе данных, который будет тем путем, который мы установили в /etc/sasl2/memcached.conf :

  
  • sudo saslpasswd2 -a memcached -c -f / etc / sasl2 / memcached-sasldb2 Сэмми

Вам будет предложено ввести и повторно подтвердить выбранный вами пароль.

Наконец, мы дадим пользователю memcache право собственности на базу данных SASL:

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

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

  
  • sudo systemctl перезапустить memcached

Повторный запуск memcstat подтвердит, сработал ли наш процесс аутентификации. На этот раз мы запустим его с нашими учетными данными для аутентификации:

  
  • memcstat --servers = "127.0.0.1 "--username = sammy --password = your_password

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

  

Выход

Сервер: 127.0.0.1 (11211) pid: 2772 время безотказной работы: 31 время: 1546621072 версия: 1. 5.6 Ubuntu . . .

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

Шаг 4 — Разрешение доступа через частную сеть (необязательно)

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

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

Ограничение IP-доступа с помощью межсетевых экранов

Перед изменением параметров конфигурации рекомендуется настроить правила брандмауэра, чтобы ограничить количество машин, которые могут подключаться к вашему серверу Memcached. Вам необходимо знать частный IP-адрес клиентского сервера , чтобы настроить правила брандмауэра.Для получения дополнительной информации о частных сетях в DigitalOcean, см. Этот обзор частных сетей DigitalOcean.

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

  
  • sudo ufw разрешить с client_server_private_IP / 32 на любой порт 11211

Вы можете узнать больше о брандмауэрах UFW, прочитав наше руководство по основам ufw.

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

Привязка Memcached к интерфейсу частной сети

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

Мы можем снова открыть файл /etc/memcached.conf , набрав:

  
  • sudo nano /etc/memcached.conf

Внутри найдите строку -l 127.0.0.1 , которую вы проверили или изменили ранее, и измените адрес, чтобы он соответствовал интерфейсу частной сети вашего сервера:

/ и т. Д. / Memcached.конф

 . . .
-l memcached_server_private_IP
. . .
  

Сохраните и закройте файл, когда закончите.

Затем перезапустите службу Memcached:

  
  • sudo systemctl перезапустить memcached

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

  
  

Выход

Активные интернет-соединения (только серверы) Proto Recv-Q Send-Q Локальный адрес Внешний адрес Состояние PID / Имя программы .. . tcp 0 0 memcached_server_private_IP: 11211 0.0.0.0:* СЛУШАТЬ 2912 / memcached . . .

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

Заключение

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

Чтобы узнать больше о Memcached, ознакомьтесь с документацией по проекту. Для получения дополнительной информации о том, как работать с Memcached, см. Наше руководство по установке и использованию Memcache в Ubuntu 14.04.

Как установить и настроить memcached

Окружающая среда

  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 7

Выпуск

  • Как установить memcached.
  • Как настроить memcached.
  • Как запустить и остановить memcached.
  • Как записывать журналы memcached в / var / log / memcached.
  • Как просмотреть блоки memcached и статистику.
  • Высокая загрузка ЦП на серверах memcached.

Разрешение

Что такое Memcached.

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

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

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

Как установить memcached.

репозиторий rhel-6-server-rpms из Red Hat:

  # yum install memcached
  

Как настроить memcached.

Настроить межсетевой экран

Прежде всего, настройте брандмауэр в вашей локальной сети, если серверы memcached должны быть доступны только из вашей локальной сети. Не разрешать внешний трафик к портам, используемым memcached (например, 11211 по умолчанию).

Отключить UDP

Если вам не требуется использовать UDP для memcached, мы настоятельно рекомендуем переключиться на TCP-соединения для вашего сервера memcached (добавьте «-U 0» в переменную OPTIONS в / etc / sysconfig / memcached). Если вам действительно требуется использование UDP и удаленный доступ к серверам memcached (например, в сценарии кластеризации), рекомендуется настроить брандмауэр, чтобы разрешать соединения только от доверенных хостов.

Настроить memcached

Чтобы настроить memcached, отредактируйте файл / etc / sysconfig / memcached следующим образом

  # vi / и т.д. / sysconfig / memcached
  

Измените значения, как показано ниже, и добавьте IP-адрес вашего сервера, на котором установлен memcached.

  ПОРТ = "11211"
USER = "memcached"
# макс. соединение 2048
MAXCONN = "2048"
# установить размер оперативной памяти 2048 - 2 ГБ
CACHESIZE = "4096"
# отключаем UDP и слушаем loopback ip 127.0.0.1, для сетевого подключения используйте реальный ip, например, 10.0.0.5
ОПЦИИ = "- U 0 -l 127.0.0.1"
  

Как настроить журналы в / var / log / memcached.

Для настройки журналов

Для захвата журналов memcached настройте / etc / sysconfig / memcached следующим образом:

  OPTIONS = "- vv >> / var / log / memcached 2> & 1"
  

Начать memcached

Запуск или остановка memcached

После вышеуказанных конфигураций пора запустить службу memcached, как показано ниже:

  # chkconfig memcached на
# запуск службы memcached
  

Чтобы остановить / перезапустить memcached, выполните следующие команды:

  # остановка службы memcached
# перезапуск службы memcached
  

Основная причина

  • Высокое использование ресурсов может произойти из-за низких настроек конфигурации для максимального количества подключений и размера кеша.
    Увеличьте значение maxconn и cachesize
  # cat / etc / sysconfig / memcached *
ПОРТ = "11211"
USER = "memcached"
# макс. соединение 2048
MAXCONN = "2048"
# установить размер оперативной памяти на 4096 - 4 ГиБ
CACHESIZE = "4096"
  

Этапы диагностики

Как использовать memcached-tool для проверки блоков данных и статистики.

Для проверки и проверки файлов memcached

  # memcached-tool IP_ADDRESS: Порт
# memcached-tool IP_ADDRESS: отображение порта
# инструмент 127.0.0.1: 11211
# memcached-tool 127.0.0.1:11211 отображение
  

Пример вывода.

  # Item_Size Max_age 1MB_pages Count Full?
  1 104 B 5134 с 1 10 нет
  2 136 B 5135 с 1 40 нет
  3 176 Б 0 с 1 0 нет
  4224 B 2648 с 1 7 нет
  8 552 B 1810 с 1 12 нет
  9 696 B 1810 с 1 6 нет
 10 872 B 2935 с 1 8 нет
  

Проверить статистику memcached

Чтобы проверить статику memcached, выполните следующие команды:

  # memcached-tool IP_Address: Статистика порта
# инструмент 127.0.0.1: 11211 статистика
  

Пример вывода вышеуказанной команды:

  # 127.0.0.1: 11211 Значение поля
acceptpting_conns 1
               auth_cmds 0
             auth_errors 0
                   байт 0
              bytes_read 87
           bytes_written 3205
              cas_badval 0
                cas_hits 0
              cas_misses 0
               cmd_flush 0
                 cmd_get 0
                 cmd_set 0
             conn_yields 0
   connection_structures 11
        curr_connections 10
              curr_items 0
               decr_hits 0
             decr_misses 0
             delete_hits 0
           delete_misses 0
               выселения 0
                get_hits 0
              get_misses 0
               incr_hits 0
             incr_misses 0
          limit_maxbytes 4294967296
     listen_disabled_num 0
                     pid 7679
            указатель_размер 64
           rusage_system 0.030995
             rusage_user 0,048992
                 темы 4
                    время 1407726751
       total_connections 17
             total_items 0
                  время безотказной работы 4999
                 версия 1.4.4

  

Каталожные номера:

  1. Проект Memcached

Это решение является частью программы ускоренных публикаций Red Hat, предоставляя огромную библиотеку решений, созданных инженерами Red Hat при поддержке наших клиентов. Чтобы дать вам необходимые знания сразу же, как только они станут доступны, эти статьи могут быть представлены в необработанном и неотредактированном виде.

Установить · memcached / memcached Wiki · GitHub

Содержание

Установка

Memcached работает на большинстве Linux и BSD-подобных систем. Нет официального поддержка сборок Windows.

Из упаковки

Обычно вам следует устанавливать memcached из пакета, предоставленного вашим Операционная система.ОС решит за вас зависимости и позаботится о обновления безопасности.

Все очень просто. Для Debian или Ubuntu:

  apt-get install memcached
  

Для Redhat / Fedora:

  yum установить memcached
  

Дополнительные сведения см. В документации по системе управления пакетами вашей ОС. Информация.

Проблемы с пакетами

Большинство пользователей используют более старую ОС, например версию долгосрочной поддержки Ubuntu от несколько лет назад или больше.Имейте в виду, что в старых ОС нет новых версии memcached. Вы можете столкнуться с ошибками или отсутствовать на новых Особенности. Даже новые версии некоторых ОС не имеют последней версии имеется в наличии.

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

Из источника

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

  apt-get install libevent-dev
  
  yum install libevent-devel
  

… или что угодно, что необходимо для вашей ОС. При желании вы можете собрать из исходников как Что ж.

Установка из исходников:

  wget https://memcached. org/latest
[вам может потребоваться переименовать файл]
tar -zxf memcached-1.x.x.tar.gz
компакт-диск memcached-1.x.x
./configure --prefix = / usr / local / memcached
сделать && сделать тест && sudo make install
  

См. ./ configure --help для полных опций. Поддержка SASL требует дополнительных дополнительные библиотеки.

Установить клиент

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

Как установить Memcached на CentOS 7

Memcached — это распределенная высокопроизводительная система кэширования в памяти, которая в основном используется для ускорения работы сайтов, интенсивно использующих базы данных.Однако его можно использовать для хранения объектов любого типа. Почти каждая популярная CMS имеет плагин или модуль для использования преимуществ Memcached, а многие языки программирования имеют библиотеки Memcached, включая PHP, Perl, Ruby и Python. Memcached работает в памяти и поэтому работает довольно быстро, поскольку не требует записи данных на диск.

Предполетная проверка

  • Эти инструкции предназначены специально для установки Memcached на один узел CentOS 7.
  • Я буду работать с управляемым сервером CentOS 7 Liquid Web Core и буду входить в систему как root.

Шаг № 1 Установите Memcached

Первая, убирающая ням:

вкуснятина очистить все

В соответствии с передовой практикой мы обновим наши пакеты:

yum -y обновление

Установить Memcached и связанные с ним пакеты теперь так же просто, как запустить всего одну команду:

yum -y установить memcached

Шаг № 2: Настройка установки Memcached

Используйте следующую команду для просмотра информации о команде Memcached:

memcached -h

Файл конфигурации по умолчанию можно найти по адресу:

/ и т. Д. / Sysconfig / memcached

При запуске Memcached по умолчанию запускается на порту 11211 в соответствии с файлом конфигурации по умолчанию:

ПОРТ = «11211»
ПОЛЬЗОВАТЕЛЬ = «memcached»
MAXCONN = «1024»
CACHESIZE = «64»
ОПЦИИ = «»

Чтобы изменить порт (PORT), пользователь Memcached запускается как (USER), максимальное количество разрешенных подключений к Memcached (MAXCONN) или размер кеша в мегабайтах (CACHESIZE), просто отредактируйте файл конфигурации.

Чтобы узнать больше о редактировании файлов с помощью vim, см .: Руководство для нового пользователя: Обзор текстового редактора Vim

ПРИМЕР: Если бы я хотел запустить Memcached на порту 1337 с 4 ГБ памяти и разрешить максимум 2000 подключений, я бы изменил файл конфигурации следующим образом.

Давайте отредактируем файл конфигурации:

vim / и т.д. / sysconfig / memcached

На следующий:

ПОРТ = «1337»
ПОЛЬЗОВАТЕЛЬ = «memcached»
MAXCONN = «2000»
CACHESIZE = «4096»
ОПЦИИ = «»

Выйдите и сохраните файл конфигурации, а затем перезапустите Memcached

.

systemctl перезапуск memcached

Шаг 3. Настройте Memcached для запуска при загрузке

И затем запустите Memcached:

systemctl start memcached

Убедитесь, что Memcached запускается при загрузке:

systemctl включить memcached

Для проверки статуса Memcached:

статус systemctl в memcached

Чтобы остановить Memcached:

systemctl stop memcached

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *