Instalar y configurar Memcached en Centos 7
Hablamos del programa de almacenamiento en caché llamado Memcached, en sistemas GNU/Linux. Pero antes de ver su instalación y configuración en nuestras distribuciones favoritas, veamos en que consiste.
¿Qué es la caché?
Sin duda la utilidad de la caché es indiscutible, ya que acelera la entrega de los elementos de nuestra web a los usuarios. Se encarga de garantizar que los diferentes elementos se almacenen, de modo que se minimice la latencia.
¿Qué es memcached?
Se trata de un producto de software libre que sigue la filosofía de desarrollo del código abierto. Su función principal es acelerar las aplicaciones web dinámicas al aliviar la carga en las bases de datos que estas utilicen.
Memcached no deja de ser un almacén de “claves-valor” en memoria para pequeños fragmentos de datos, ya sea cadenas u objectos, que son resultado de llamadas a bases de datos, API o representación de páginas.
Podéis visitar su página web oficial.
Instalación y configuración de memcached en Centos 7
Su instalación es bien sencilla, ya que no vamos a necesitar ningún repositorio adicional, Memcached se encuentra en los repositorios principales de las mayoría de distribuciones.
Para el artículo voy a utilizar Centos 7, la instalación sería así:
yum update
yum install memcached
A continuación, vamos a instalar libmemcached, una biblioteca que ofrece un par de herramientas para administrar nuestro servidor con memcached.
yum install libmemcached
Ahora vamos a pasar a asegurar la instalación, ya que es susceptible de ataques con la configuración por defecto.
Asegurar Memcached
Para asegurarnos que el servicio instalado este escuchando en la interfaz local 127.0.0.1, modificaremos la variable OPTIONS en el fichero de configuración “/etc/sysconfig/memcached”
vi /etc/sysconfig/memcached
Debemos buscar la variable OPTIONS y añadir la variable “-l 127.0.0.1 -U 0”. Este ajuste de configuración protegerá nuestro servidor de ataques de DDOS, esto es, de denegación de servicio.
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 127.0.0.1 -U 0"
Veamos los detalles de la configuración:
- PORT: El puerto utilizado por el servicio para funcionar.
- USER: El “daemon” de inicio para el servicio
- MAXCONN: El valor utilizado para establecer el máximo de conexiones simultanea en 1024. Si nuestra web reciben mucho tráfico sería adecuado aumentar la cifra.
- CACHESIZE: Establecemos el tamaño de la memoria de la caché en 2048. Para servidores ocupados, podemos aumentar hasta 4 GB
- OPTIONS: Configuramos la dirección IP de escucha, de modo que los servidores web, ya sean NGINX o Apache se pueden conectar.
Una vez hecho los cambios arrancamos el servicio y lo añadimos al inicio:
systemctl restart memcached
systemctl enable memcached
Una vez iniciado, podemos confirnar que el servicio está funcionando sobre la interfaz local y escucha solo conexiones. Para ello podemos utilizar la herramienta “netstat”
netstat -plunt
También podemos verificar las estadísticas del servidor utilizando la herramienta “memcached-tool”, como sigue:
memcached-tool 127.0.0.1 stats
Con un resultado similar al siguiente:
[davidochobits@servcentos]$ memcached-tool 127.0.0.1 stats
#127.0.0.1:11211 Field Value
accepting_conns 1
auth_cmds 0
auth_errors 0
bytes 0
bytes_read 14
bytes_written 1021
cas_badval 0
cas_hits 0
cas_misses 0
cmd_flush 0
cmd_get 0
cmd_set 0
cmd_touch 0
conn_yields 0
connection_structures 2
curr_connections 1
curr_items 0
decr_hits 0
decr_misses 0
delete_hits 0
delete_misses 0
evicted_unfetched 0
evictions 0
expired_unfetched 0
get_hits 0
get_misses 0
hash_bytes 524288
hash_is_expanding 0
hash_power_level 16
incr_hits 0
incr_misses 0
libevent 2.0.21-stable
limit_maxbytes 67108864
listen_disabled_num 0
pid 17221
pointer_size 64
reclaimed 0
reserved_fds 20
rusage_system 0.026198
rusage_user 0.022705
threads 4
time 1554130266
total_connections 3
total_items 0
touch_hits 0
touch_misses 0
uptime 937
version 1.4.15
Habilitar memcached en el cortafuegos
Si tenemos el cortafuegos habilitado, debemos añadir el puerto correspondiente a la configuración:
firewall-cmd --permanent --add-port=11211/tcp
fireall-cmd --reload
Instalar la extensión de PHP para Memcached
Si deseamos instalar la extensión de PHP para Memcached, solo hemos de escribir:
yum install php-pecl-memcache
Instalar la extensión de Perl para Memcached
En el caso de la extensión para Perl, ejecutamos:
yum install perl-Cache-Memcached
Instalar la extensión de Python para Memcached
Lo propio para la extensión de Python:
yum install python-memcached
Siempre que instalemos extensión nueva hemos de reiniciar el servidor web que utilicemos:
systemctl restart httpd
systemctl restart nginx
Conclusiones
Hemos visto como instalar, configurar y asegurar el servicio Memcached en nuestro servidor, en pocos pasos. Se trata de un guía inicial, os invito a investigar y probar este producto.
Y esto es todo, espero que en algún momento os pueda servir la información.
Fuentes consultadas:
Tecmint.com – How to Install Memcached (Caching Server) on CentOS 7