Memcached – это программа кэширования объектов в распределенной памяти с открытым исходным кодом, которая позволяет улучшить и ускорить работу динамических веб-приложений за счет кэширования данных и объектов в памяти.
Memcached также используется для кэширования целых таблиц баз данных и запросов для повышения производительности базы данных Это единственная свободно распространяемая система кэширования, используемая многими крупными сайтами, такими как YouTube, Facebook, Twitter Reddit, Drupal, Zynga и др.
При неправильной настройке Memcached может подвергаться атакам типа «отказ в обслуживании». В этой статье мы расскажем, как установить и защитить сервер Memcached на дистрибутивах Linux на базе RHEL, таких как*Rocky Linux, AlmaLinux и Fedora.
Установка Memcached в Linux
Сначала обновите индекс локальных программных пакетов, а затем установите Memcached из официальных репозиториев с помощью следующих команд yum от имени администратора root.
yum update yum install memcached
Далее мы установим libmemcached – клиентскую библиотеку, которая предлагает несколько инструментов для управления вашим сервером Memcached.
yum install libmemcached
Теперь Memcached должен быть установлен в вашей системе как служба, вместе с инструментами, которые необходимы для проверки его подключения. Теперь мы можем приступить к защите его конфигурационных параметров.
Защита параметров конфигурации Memcached
Чтобы убедиться, что установленный сервис Memcached прослушивает локальный интерфейс 127.0.0.1
, мы изменим переменную OPTIONS
в конфигурационном файле /etc/sysconfig/memcached
.
vi /etc/sysconfig/memcached
Найдите переменную OPTIONS
и добавьте -l 127.0.0.1,::1
в переменную OPTIONS
. Эти параметры конфигурации защитят наш сервер от атак типа «отказ в обслуживании».
sudo nano /etc/sysconfig/memcached
PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="64" OPTIONS="-l 127.0.0.1,::1"
Давайте обсудим каждый из вышеперечисленных параметров подробнее.
- PORT : Порт, используемый Memcached для работы.
- USER : Стартовый демон для службы Memcached.
- MAXCONN : Значение, используемое для установки максимального количества одновременных соединений 1024. Для загруженных веб-серверов вы можете увеличить это значение до любого числа в зависимости от ваших требований.
- CACHESIZE : Установите размер кэш-памяти на 2048. Для загруженных серверов можно увеличить до 4 ГБ.
- OPTIONS : Задайте IP-адрес сервера, чтобы веб-серверы Apache или Nginx могли подключаться к нему.
Перезапустите и включите службу Memcached, чтобы применить изменения в конфигурации.
systemctl restart memcached systemctl enable memcached
После запуска вы можете убедиться, что ваша служба Memcached привязана к локальному интерфейсу и прослушивает только TCP-соединения, используя следующую команду netstat.
netstat -pluntВы также можете проверить состояние сервера с помощью memcached-tool, как показано на рисунке.
memcached-tool 127.0.0.1 stats
Теперь убедитесь, что вы разрешили доступ к серверу Memcached, открыв порт 11211
на вашем брандмауэре, как показано на рисунке.
firewall-cmd --permanent --zone=public --add-port=11211/tcp
Тестовая установка Memcached
Чтобы убедиться, что Memcached работает правильно, вы можете подключиться к нему с помощью команды telnet.
telnet localhost 11211
Если подключение прошло успешно, вы увидите подсказку, похожую на эту:
Установка PHP-расширения Memcached
Чтобы установить расширение Memcached PHP и интегрировать его с Perl, Python Apache и Nginx в системе Linux, вам нужно будет выполнить определенные шаги для каждого компонента.
Для PHP
yum install php-memcached
После установки вам может потребоваться перезапустить Apache, Nginx или PHP-FPM:
systemctl restart httpd systemctl restart nginx systemctl restart php-fpm
Для Perl
yum install perl-Cache-Memcached
Для Python
yum install python3-memcached
После установки настройте свои приложения PHP, Perl или Python на использование Memcached для кэширования. Для этого необходимо изменить код приложения для подключения к серверу Memcached и хранения/получения кэшированных данных.
Заключение
В этой статье мы рассказали, как установить и защитить сервер Memcached для локального сетевого интерфейса, чтобы оптимизировать производительность динамических веб-приложений за счет снижения нагрузки на базу данных путем эффективного кэширования.
Если вы столкнулись с какими-либо проблемами во время установки, обратитесь за помощью в раздел комментариев ниже.
Комментарии (0)