Memcached est un magasin de données clé-valeur en mémoire hautes performances gratuit et open source. Il est principalement utilisé comme système de mise en cache pour accélérer les applications en mettant en cache divers objets à partir des résultats des appels de base de données.
Dans ce tutoriel, nous allons vous expliquer comment installer et configurer Memcached sur CentOS 7.
Prérequis #
Avant de poursuivre ce didacticiel, assurez-vous que vous êtes connecté en tant qu'utilisateur disposant des privilèges sudo.
Installation de Memcached #
Les packages Memcached sont inclus dans les référentiels CentOS 7 par défaut. L'installation est assez simple, il suffit de taper la commande suivante :
sudo yum install memcached libmemcached
Le libmemcached
fournit plusieurs outils de ligne de commande pour gérer le serveur Memcached.
Une fois l'installation terminée, démarrez et activez le service Memcached :
sudo systemctl start memcached
sudo systemctl enable memcached
Voilà, à ce stade, Memcached est installé et exécuté sur votre serveur CentOS 7.
Configuration de Memcached #
Memcached peut être configuré en éditant le /etc/sysconfig/memcached
dossier. Par défaut, Memcached est configuré pour écouter sur toutes les interfaces. Dans les sections suivantes, nous vous montrerons comment configurer le service pour un accès local et distant.
Lorsqu'il est mal configuré, Memcached peut être utilisé pour effectuer une attaque par déni de service distribué (DDoS).
Accès local uniquement #
Si le client qui se connecte au serveur s'exécute également sur le même hôte, il est recommandé de configurer le service Memcached pour n'écouter que l'hôte local.
Pour cela, ouvrez le memcached
fichier de configuration avec votre éditeur de texte :
sudo nano /etc/sysconfig/memcached
Dans les OPTIONS
paramètre ajouter -l 127.0.0.1
. Ceci indique à Memcached de se lier à l'interface spécifiée uniquement.
OPTIONS="-l 127.0.0.1"
Redémarrez le service Memcached pour que les modifications prennent effet :
sudo systemctl restart memcached
Numéro d'accès à distance
Si l'application qui se connectera à Memcached est hébergée sur un serveur distant, vous devez configurer votre pare-feu et autoriser l'accès au port Memcached 11211 uniquement à partir de l'adresse IP du client.
L'exemple suivant suppose que vous souhaitez vous connecter au serveur Memcached via un réseau privé. L'IP du serveur Memcached est 192.168.100.20
et l'adresse IP du client est 192.168.100.30
.
CentOS est livré avec un outil de configuration de pare-feu FirewallD
. Les commandes ci-dessous créeront une nouvelle zone nommée memcached
, ouvrez le port 11211
et n'autoriser l'accès qu'à partir de l'adresse IP du client.
sudo firewall-cmd --new-zone=memcached --permanent
sudo firewall-cmd --zone=memcached --add-port=11211/udp --permanent
sudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanent
sudo firewall-cmd --zone=memcached --add-source=192.168.100.30/32 --permanent
sudo firewall-cmd --reload
Une fois votre pare-feu configuré, l'étape suivante consiste à modifier la configuration Memcached et à configurer le service pour qu'il écoute sur l'interface de réseau privé du serveur :
Ouvrez le memcached
fichier de configuration :
sudo nano /etc/sysconfig/memcached
Dans les OPTIONS
paramètre ajouter l'adresse IP du serveur -l 192.168.100.20
:
OPTIONS="-l 192.168.100.20"
Enregistrez le fichier et redémarrez le service Memcached :
sudo systemctl restart memcached
Connexion à Memcached #
Pour vous connecter au serveur Memcached, vous devez utiliser un client spécifique à la langue.
PHP #
Pour utiliser Memcached comme base de données de mise en cache pour votre application PHP telle que WordPress, Drupal ou Magento, vous devez installer le php-pecl-memcached
extension :
sudo yum install php-pecl-memcache
Python #
Il existe plusieurs bibliothèques Python pour interagir avec Memcache. Vous pouvez installer votre bibliothèque préférée en utilisant pip :
pip install pymemcache
pip install python-memcached