Бред Фітцпатрік розробив Memcached у 2003 році для сайту LiveJournal як потужну систему кешування з відкритим вихідним кодом для підвищення продуктивності динамічних веб-додатків за рахунок зниження навантаження на базу даних. Відтоді вона стала життєво необхідною для багатьох веб-сайтів і додатків із високою відвідуваністю. Перш ніж приступити до встановлення Memcached на Debian 12 Bookworm, Debian 11 Bullseye або Debian 10 Buster, розгляньмо деякі ключові моменти, пов’язані з Memcached.
Ключові особливості та переваги:
- Масштабованість: Memcached, що обробляє мільйони операцій на секунду, ідеально підходить для великомасштабних веб-додатків і служб.
- Розподілене кешування: завдяки архітектурі розподіленого кешування Memcached дає змогу горизонтально масштабувати систему на кількох серверах, збільшуючи загальну ємність кешу.
- In-Memory Storage: Будучи сховищем ключових значень у пам’яті, Memcached забезпечує швидкий доступ до кешованих даних, значно знижуючи затримки в дискових системах зберігання.
- Простий API: Memcached надає простий API, що підтримує різні мови програмування, зокрема PHP, Python, Ruby та інші.
- Закінчення терміну дії кешу: Система дає змогу розробникам задавати час закінчення терміну дії кешованих даних, що сприяє автоматичному видаленню з кешу застарілих або неактуальних даних.
- Легка вага: При мінімальному навантаженні на процесор і пам’ять Memcached ефективно працює на різних конфігураціях серверів, не забираючи при цьому значних системних ресурсів.
- Гнучкі типи даних: Завдяки підтримці різних типів даних, таких як рядки, цілі числа і складні об’єкти, Memcached є універсальним рішенням для різних випадків використання.
У наступному посібнику ми розглянемо процес встановлення Memcached на Debian 12 Bookworm, Debian 11 Bullseye або Debian 10 Buster, використовуючи або стандартний репозиторій apt, або вручну завантаживши та скомпілювавши останні вихідні тексти. Після інсталяції в статті буде запропоновано важливі поради та рекомендації з налаштування, які допоможуть вам оптимізувати інсталяцію Memcached.
Встановлення Memcached на Debian 12, 11 або 10 за допомогою APT
У цьому розділі ми встановимо Memcached на систему Debian Linux за допомогою менеджера пакетів APT. Це включає в себе оновлення системних пакетів і встановлення Memcached за допомогою деяких корисних інструментів.
Крок 1: Оновлення системи Debian перед встановленням Memcached
Щоб переконатися, що у вас є останні версії пакетів і оновлення безпеки, почніть з оновлення системи Debian. Виконайте таку команду:
sudo apt update && sudo apt upgrade
Ця команда оновить список пакетів і оновить застарілі пакети до їхніх останніх версій.
Крок 2: Встановлення Memcached і Libmemcached-tools на Debian
Debian включає Memcached у свої сховища за замовчуванням, що спрощує встановлення. Щоб встановити Memcached, виконайте таку команду:
sudo apt install memcached libmemcached-tools
Ця команда встановлює як Memcached, так і пакет libmemcached-tools. Пакет libmemcached-tools надає додаткові утиліти командного рядка, які забезпечують ширші можливості взаємодії та управління Memcached.
Встановлення Memcached на Debian 12, 11 або 10 з вихідних текстів
У цьому розділі розглядається встановлення Memcached на систему Debian шляхом компіляції з вихідного коду. Встановлення з вихідних текстів може бути корисним, якщо ви хочете використовувати останню версію Memcached або налаштувати збірку під конкретні вимоги.
Крок 1: Завантаження вихідного коду Memcached на Debian
Спочатку відвідайте сторінку останнього випуску Memcached, щоб знайти поточну версію. Для безпосереднього завантаження використовуйте наступну команду wget:
wget https://memcached.org/latest
Крок 2. Розпакування архіву з вихідним кодом Memcached на Debian
Далі витягніть завантажений вихідний код, виконавши таку команду:
tar -xvf latest
Перш ніж продовжити, перейдіть у розпакований каталог. Ім’я каталогу залежить від завантаженої версії:
cd memcached-{place version number here}
Замініть {version_number} на фактичний номер версії.
Крок 3: Встановлення початкових пакетів, необхідних для компіляції Memcached
Перед компіляцією Memcached необхідно встановити необхідні залежності для збірки. Для їхнього встановлення виконайте таку команду:
sudo apt install build-essential libevent-dev gcc make libc6-dev
Встановлені пакети слугують для таких цілей:
- gcc: Відомий компілятор мови Сі для вихідних файлів Memcached.
- make: Керує компіляцією.
- libc6-dev: Надає посилання на бібліотеку GNU C і заголовкові файли.
- libevent-dev: Містить файли розробки для асинхронного повідомлення про події.
Крок 4: Налаштування встановлення
За допомогою параметра –prefix= задайте каталог, у який буде встановлено бінарні файли та бібліотеки Memcached:
./configure --prefix=/usr/local
Крок 5: Компіляція вихідного коду Memcached на Debian
Скомпілюйте вихідний код Memcached за допомогою команди make:
make
Протестуйте Memcached, підтвердивши поточну версію:
./memcached --version
Крок 6. Встановлення Memcached на Debian за допомогою команди ‘make install’
Після завершення процесу компіляції встановіть Memcached, виконавши таку команду:
sudo make install
Ця команда встановлює Memcached на вашу систему, роблячи її доступною з командного рядка. Щоб переконатися, що система розпізнала нові бібліотеки, виконайте наступне:
sudo ldconfig
Крок 7: Перевірка встановлення Memcached на Debian
Щоб переконатися в тому, що Memcached успішно встановлено, виконайте таку команду:
memcached -V
Ця команда відобразить встановлену версію Memcached, підтверджуючи успішне встановлення з вихідного коду.
Крок 8: Створення служби Systemd для Memcached на Debian
Під час встановлення Memcached з вихідних текстів не відбувається автоматичного створення файлу служби systemd. Щоб запустити Memcached як службу і керувати ним за допомогою systemctl, необхідно створити користувацький файл служби systemd для Memcached. Виконайте такі кроки для створення та ввімкнення служби:
Створіть новий файл memcached.service у каталозі /etc/systemd/system за допомогою текстового редактора. У цьому прикладі ми будемо використовувати nano:
sudo nano /etc/systemd/system/memcached.service
Додайте такий вміст у файл memcached.service:
[Unit]
Description=Memcached Service
After=network.target
[Service]
Type=simple
User=memcache
Group=memcache
ExecStart=/usr/local/bin/memcached /etc/memcached.conf
Restart=always
[Install]
WantedBy=multi-user.target
Збережіть файл і вийдіть із текстового редактора.
Створіть користувача і групу memcache для безпечного запуску служби:
sudo useradd -r -s /sbin/nologin -U -M memcache
Перезавантажте конфігурацію systemd для розпізнавання нового службового файлу:
sudo systemctl daemon-reload
Нарешті, запустіть сервіс:
sudo systemctl enable memcached --now
Керування станом служби Memcached на Debian 12, 11 або 10
У цьому розділі ми розглянемо управління службою Memcached на вашій системі Debian. Сюди входить перевірка статусу служби, запуск і зупинка служби, а також налаштування її запуску під час завантаження системи.
Крок 1: Перевірка стану служби Memcached
За замовчуванням служба Memcached має бути запущена після встановлення. Щоб перевірити її статус, використовуйте команду systemctl наступним чином:
systemctl status memcached
Ця команда відобразить поточний стан служби Memcached.
Крок 2: Запуск служби Memcached
Якщо службу Memcached не запущено, її можна запустити за допомогою такої команди:
sudo systemctl start memcached
Крок 3: Увімкнення Memcached під час завантаження системи
Для того щоб служба Memcached автоматично запускалася під час завантаження системи, виконайте таку команду:
sudo systemctl enable memcached
Крок 4: Зупинення служби Memcached
Якщо необхідно зупинити службу Memcached, використовуйте цю команду:
sudo systemctl stop memcached
Крок 5: Вимкнення Memcached під час завантаження системи
Щоб запобігти автоматичному запуску служби Memcached під час завантаження системи, виконайте таку команду:
sudo systemctl disable memcached
Крок 6: Перезапуск служби Memcached
Якщо необхідно перезапустити службу Memcached, наприклад, після внесення змін до конфігурації, використовуйте цю команду:
sudo systemctl restart memcached
Крок 7: Переконайтеся, що Memcached прослуховує порт за замовчуванням
І нарешті, переконайтеся, що Memcached активно прослуховує localhost, використовуючи порт за замовчуванням 11211. Для підтвердження цього виконайте таку команду:
ps -ef | grep memcached
У результаті має з’явитися рядок, який вказує на те, що Memcached запущений і прослуховує вказаний порт, як показано нижче:
memcache 5934 1 0 09:36 ? 00:00:00 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid
root 6591 3653 0 09:55 pts/0 00:00:00 grep memcached
Налаштування Memcached на Debian 12, 11 або 10
У цьому розділі ми розглянемо налаштування параметрів Memcached шляхом редагування файлу memcached.conf. Ми обговоримо налаштування IP-адреси прослуховування, вимкнення UDP і зміну розподілу пам’яті за замовчуванням.
Крок 1: Відкрийте файл конфігурації Memcached
Відкрийте файл конфігурації Memcached, розташований за адресою /etc/memcached.conf, за допомогою текстового редактора, наприклад nano:
sudo nano /etc/memcached.conf
Користувачам, які скомпілювали Memcached з вихідних текстів, потрібно буде створити цей файл, щоб під час першого відкриття він був порожнім порівняно з методом APT; ви можете скопіювати його, щоб почати налаштування:
# Example memcached.conf file
# 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 64
# Default port is 11211
-p 11211
# Run the daemon as a background process
-d
# Use syslog logging
-s
# Enable verbose logging
-vv
# Set the maximum number of simultaneous connections
-c 1024
Крок 2: Налаштування IP-адреси прослуховування
За замовчуванням Memcached прослуховує IP-адресу 127.0.0.1. Перевірте параметр -l у конфігураційному файлі та переконайтеся, що він встановлений на правильну IP-адресу. Якщо необхідно змінити IP-адресу, замініть 127.0.0.1 новою IP-адресою:
-l 127.0.0.1
Крок 3: Вимкнення UDP (необов’язково)
Якщо підтримка UDP не потрібна, рекомендується вимкнути її. Щоб вимкнути UDP, додайте в конфігураційний файл такий рядок:
-U 0
Крок 4: Налаштування розподілу пам’яті
За замовчуванням для Memcached виділяється 64 МБ пам’яті, що може виявитися недостатнім для великих сайтів. Щоб максимально ефективно використовувати Memcached, слід змінити розподіл пам’яті на більш високе значення.
Для налаштування розподілу пам’яті знайдіть у конфігураційному файлі параметр -m і замініть значення за замовчуванням на необхідну кількість (у МБ). Наприклад, для виділення 2 ГБ пам’яті встановіть значення 2000:
-m 2000
Налаштуйте цей параметр відповідно до доступної пам’яті та вимог вашого сервера.
Крок 5: Збереження та перезапуск Memcached
Після внесення необхідних змін збережіть конфігураційний файл, натиснувши CTRL+O, потім Y, а потім CTRL+X для виходу з текстового редактора. Нарешті, перезапустіть службу Memcached, щоб зміни набули чинності:
sudo systemctl restart memcached
Встановлення UFW Firewall для Memcached на Debian 12, 11 або 10
Для забезпечення безпеки вашого екземпляра Memcached дуже важливо правильно налаштувати правила брандмауера. У цьому розділі ми розглянемо, як встановити та налаштувати Uncomplicated Firewall (UFW) для забезпечення безпеки вашого сервера Memcached.
Крок 1: Перевірте, чи встановлено UFW у Debian
Спочатку давайте перевіримо, чи встановлено UFW на вашій системі Debian:
sudo ufw --version
Якщо UFW встановлено, то у висновку ви побачите номер його версії. Якщо ні, то його необхідно встановити.
Крок 2. Встановлення UFW на Debian для роботи з Memcached
Щоб встановити UFW на систему Debian, виконайте таку команду:
sudo apt install ufw
Після завершення встановлення увімкніть UFW за допомогою такої команди:
sudo ufw enable
Крок 3: Налаштування правил UFW для Memcached на Debian
Тепер, коли UFW встановлений і ввімкнений, необхідно створити дозвільні правила для порту TCP 11211. Правила, які ви створите, залежатимуть від вашої установки і вимог, чи то використання одного IP мережевого з’єднання, чи то робота з кількома екземплярами в кластерній мережі.
Приклад одиночного мережевого IP-підключення
Дозволити доступ до Memcached з певної IP-адреси:
sudo ufw allow proto tcp from <ip_address> to any port 11211
Приклад підключення до IP-мережі кластера з кількома екземплярами
Дозволити доступ до Memcached із підмережі IP-адрес:
sudo ufw allow proto tcp from <ip_address>/24 to any port 11211
Зверніть увагу, що друге правило UFW є правилом підмережі. Перш ніж дозволити доступ, переконайтеся, що внутрішня мережа безпечна і надійна.
Крок 4: Перевірка правил UFW
Після налаштування відповідних правил перевірте правильність їхньої конфігурації, перерахувавши поточні UFW-правила:
sudo ufw status
У результаті мають з’явитися налаштовані правила, що забезпечують захист екземпляра Memcached за допомогою UFW.
Встановлення бібліотек Memcached на Debian 12, 11 або 10
Memcached пропонує розширення для різних мов програмування, але найчастіше він використовується в PHP. У цьому розділі ми розповімо вам про встановлення бібліотек Memcached для PHP, Python і Perl, а також про налаштування Memcached для веб-серверів Apache і Nginx.
Встановлення бібліотек PHP для Memcached на Debian
Щоб встановити бібліотеку PHP для Memcached, виконайте таку команду:
sudo apt install php-memcached libapache2-mod-php php php-cli
Налаштування Memcached для Apache HTTP Server у Debian
Якщо ви використовуєте HTTP-сервер Apache, увімкніть модуль Memcached, виконавши таку команду:
sudo phpenmod memcached && sudo systemctl restart apache2
Налаштування Memcached для HTTP-сервера Nginx на Debian
Підтримка Memcached буде включена за замовчуванням у вашому блоці конфігурації PHP після встановлення бібліотеки PHP для користувачів Nginx.
Нижче наведено приклад простого блоку сервера nginx:
server {
listen 80;
server_name example.com;
root /var/www/example.com;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Встановлення бібліотеки Python для Memcached у Debian
Щоб встановити підтримку Python для Memcached, виконайте таку команду:
sudo apt install python3-pymemcache
Встановлення бібліотеки Perl для Memcached у Debian
Щоб встановити підтримку Perl для Memcached, виконайте таку команду:
sudo apt install libcache-memcached-libmemcached-perl
Висновок
Насамкінець слід зазначити, що встановлення та налаштування Memcached у Debian Linux може значно підвищити продуктивність ваших веб-додатків завдяки швидкій, ефективній і простій у використанні системі кешування. Дотримуючись кроків, описаних у цьому посібнику, ви зможете успішно встановити Memcached, конфігурувати його з обраним вами веб-сервером і захистити його за допомогою UFW. При правильному налаштуванні та управлінні Memcached може стати незамінним помічником в оптимізації додатків і забезпеченні кращої якості роботи користувачів.