Memcached es un sistema gratuito de almacenamiento en caché de objetos de memoria distribuida y de alto rendimiento escrito en lenguaje C. Se utiliza para acelerar los sitios web dinámicos basados en bases de datos mediante el almacenamiento en caché de datos y objetos en la RAM. Memcached funciona almacenando el contenido de la tabla de la base de datos del sitio web y la consulta en la memoria, lo que aumenta drásticamente el rendimiento del sitio web. Puede crear e implementar un sitio web altamente escalable y de alto rendimiento con Memcached. Memcached ahora es utilizado por muchas empresas, incluidas Facebook, Reddit, Wikipedia, Craigslist, Yellowbot, YouTube y más.
En este tutorial, explicaremos las instrucciones paso a paso sobre cómo instalar y asegurar Memcache en Ubuntu 18.04 VPS.
Requisitos
- Un VPS de servidor Ubuntu 18.04 nuevo en Atlantic.Net Cloud.
- Se configura una contraseña raíz en su VPS.
Paso 1:crear el servidor en la nube de Atlantic.Net
Primero, inicie sesión en su servidor Atlantic.Net Cloud. Cree un nuevo servidor, eligiendo Ubuntu 18.04 como sistema operativo, con al menos 2 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.
Una vez que haya iniciado sesión en su servidor Ubuntu 18.04, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.
apt-get update -y
Paso 2:instale Apache y PHP
Primero, deberá instalar el servidor web Apache y PHP en su servidor. Puede instalarlos con el siguiente comando:
apt-get install apache2 php php-dev php-pear libapache2-mod-php -y
Una vez que todos los paquetes estén instalados, inicie el servidor web Apache y habilítelo para que se inicie después de reiniciar el sistema con el siguiente comando:
systemctl iniciar apache2systemctl habilitar apache2
Paso 3:instalar Memcached
apt-get install memcached libmemcached-herramientas php-memcached -y
Una vez instalado, debe reiniciar el servicio de Apache para aplicar los cambios:
systemctl reiniciar apache2
A continuación, puede verificar el estado del servicio Memcached con el siguiente comando:
estado systemctl memcached
Deberías obtener el siguiente resultado:
● memcached.service - daemon de memcached Cargado:cargado (/lib/systemd/system/memcached.service; habilitado; valor preestablecido del proveedor:habilitado) Activo:activo (en ejecución) desde el viernes 2019-08-30 09:30:02 UTC; Hace 41 s Documentos:man:memcached(1) PID principal:19088 (memcached) Tareas:10 (límite:1114) CGroup:/system.slice/memcached.service └─19088 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid 30 de agosto 09:30:02 ubuntu1804 systemd[1]:Se inició el demonio memcached.
netstat-plunt | grep memcached
Salida:
tcp 0 0 127.0.0.1:11211 0.0.0.0:* ESCUCHAR 19088/memcached
También puede consultar las estadísticas actuales de su servidor Memcached con el siguiente comando:
echo "configuración de estadísticas" | host local nc 11211
Deberías obtener el siguiente resultado:
STAT maxbytes 67108864STAT maxconns 1024STAT tcpport 11211STAT udpport 0STAT inter 127.0.0.1STAT verbosity 0STAT oldest 0STAT evictions onSTAT domain_socket NULLSTAT umask 700STAT growth_factor 1.25STAT chunk_size 48STAT num_threads 4STAT num_threads_per_udp 4STAT stat_key_prefix :STAT detail_enabled noSTAT reqs_per_event 20STAT cas_enabled yesSTAT tcp_backlog 1024STAT binding_protocol auto- negociar
Paso 4:configurar Memcached
El archivo de configuración predeterminado de Memcache se encuentra en /etc/memcached.conf. Ahora, abra el archivo de configuración de Memcached y configure Memcached para escuchar en localhost (127.0.0.1), con 2 GB de memoria y permita un máximo de 1000 conexiones:
nano /etc/memcached.conf
Realice los siguientes cambios:
# Ejecuta memcached como un demonio. Este comando está implícito y no es necesario para el -d# Registre la salida de memcached en /var/log/memcachedlogfile /var/log/memcached.log# memory-m 2048# El puerto de conexión predeterminado es 11211-p 11211# Ejecute el daemon como raíz. start-memcached se ejecutará de manera predeterminada como root si no hay un comando # -u presente en este archivo de configuración-u memcache# Especifique en qué dirección IP escuchar. El valor predeterminado es escuchar en todas las direcciones IP-l 127.0.0.1# Limite el número de conexiones entrantes simultáneas. El valor predeterminado del demonio es 1024-c 500# Use un pidfile-P /var/run/memcached/memcached.pid
Guarde y cierre el archivo. Luego, reinicie el servicio Memcached para aplicar los cambios:
systemctl reiniciar memcached
Paso 5:Probar Memcached
Memcached ahora está instalado y funcionando. A continuación, compruebe si la extensión PHP de Memcache está habilitada y funciona correctamente. Para hacerlo, cree un archivo info.php dentro del directorio raíz de Apache:
nano /var/www/html/info.php
Agregue las siguientes líneas:
Guarde y cierre el archivo. Luego, abra su navegador web y escriba la URL http://your-server-ip/info.php. Debería obtener la siguiente página con Memcached habilitado:
Es una buena práctica eliminar el archivo info.php después de la prueba para proteger su servidor de los piratas informáticos.
Rm -rf /var/www/html/info.php
Paso 6:Memcached seguro con SASL
Sin ningún tipo de seguridad, Memcached puede contribuir a los ataques de denegación de servicio. Se recomienda proteger Memcached con compatibilidad con SASL y autenticación de usuario.
Primero, verifique la conexión de Memcached sin ningún tipo de seguridad ejecutando el siguiente comando:
memcstat --servidores="127.0.0.1"
Salida:
Servidor:127.0.0.1 (11211) pid:16805 tiempo de actividad:764 tiempo:1566107468 versión:1.5.6 table.libeventA continuación, abra el archivo de configuración de Memcached y habilite la compatibilidad con SASL y el registro detallado con el siguiente comando:
nano /etc/memcached.confAgregue la siguiente línea al final del archivo:
-S-vvGuarde y cierre el archivo. Luego, reinicie el servicio Memcached:
systemctl reiniciar memcachedA continuación, consulte el registro de Memcached para verificar si la compatibilidad con SASL se ha habilitado o no:
journalctl -u memcachedDebería ver el siguiente resultado con soporte SASL:
18 de agosto 05:52:37 hitesh30 09:47:14 ubuntu1804 systemd-memcached-wrapper[19941]:SASL inicializado.A continuación, vuelva a comprobar la conectividad de Memcached con el siguiente comando:
memcstat --servidores="127.0.0.1"No debería obtener ningún resultado; eso significa que se ha habilitado la compatibilidad con SASL en Memcached.
A continuación, deberá agregar un usuario autenticado para Memcached.
Para hacerlo, primero instale el paquete SASL con el siguiente comando:
apt-get install sasl2-bin -yUna vez instalado, cree un directorio y un archivo para la configuración de SASL:
mkdir /etc/sasl2nano /etc/sasl2/memcached.confAgregue las siguientes líneas:
lista_mecánica:nivel_de registro simple:ruta_5sasldb:/etc/sasl2/memcached-sasldb2Guarde y cierre el archivo. Luego, cree una base de datos SASL con el usuario llamado memcacheadmin con el siguiente comando:
saslpasswd2 -a memcached -c -f /etc/sasl2/memcached-sasldb2 usuario1Se le pedirá que ingrese la contraseña:
Contraseña:Otra vez (para verificación):A continuación, cambie la propiedad de la base de datos SASL:
chown memcache:memcache /etc/sasl2/memcached-sasldb2Finalmente, reinicie el servicio Memcached para aplicar los cambios de configuración:
systemctl reiniciar memcachedA continuación, vuelve a comprobar la conectividad de Memcached con nuestras credenciales de autenticación:
memcstat --servers="127.0.0.1" --username=usuario1 [email protected]Deberías obtener el siguiente resultado:
Servidor:127.0.0.1 (11211) pid:18776 tiempo de actividad:30 tiempo:1566107912 versión:1.5.6 Ubuntu table.libevent>Eso significa que Memcached ahora está protegido con soporte SASL y autenticación de usuario.