1 - Introducción a LiteSpeed
LiteSpeed es un potente servidor web que ofrece una mejora de rendimiento notable en comparación con Apache
LiteSpeed es totalmente retro-compatible con Apache, no te preocupes, el funcionamiento del servidor sigue siendo el mismo.
LiteSpeed trae por defecto un avanzado sistema de cache llamado LSCache, este sistema lo que hace es cachear el contenido dinámico de las webs para servirlas como contenido estático, mejorando así el tiempo de carga de una web de forma sobresaliente. El usuario está navegando por la web y las páginas cargan al instante.
El secreto de este excepcional rendimiento, reside en la integración nativa que hay entre los diferentes CMS (Wordpress, Prestashop, Magento, Drupal, Joomla, etc…) y el propio LiteSpeed.
A continuación de explicamos como configurar LiteSpeed para sacar el máximo rendimiento y provecho a tu web.
2 - Activar LSCaché mediante plugin
Para activar LSCache es muy simple, solo debes instalar el plugin correspondiente para tu CMS. Estos son los enlaces de donde puedes descargarlo:
- Wordpress: https://wordpress.org/plugins/litespeed-cache/
- Prestashop: https://www.litespeedtech.com/products/cache-plugins/prestashop-acceleration
- OpenCart: https://www.litespeedtech.com/products/cache-plugins/opencart-acceleration
- Magento: https://www.litespeedtech.com/products/cache-plugins/magento-acceleration/litemage-release-log
- Joomla: https://www.litespeedtech.com/products/cache-plugins/joomla-acceleration
- Drupal: https://www.litespeedtech.com/products/cache-plugins/drupal-acceleration
- Xenforo: https://www.litespeedtech.com/products/cache-plugins/xenforo-acceleration/
- Mediawiki: https://www.litespeedtech.com/products/cache-plugins/mediawiki-acceleration
Después de haber instalado el plugin, notarás como los tiempos de carga de tu web bajan drásticamente, proporcionando así una experiencia de navegación excelente a tus usuarios.
En caso que quieras vaciar la cache de LiteSpeed, desde el propio cPanel verás que tienes disponible un icono para realizar tal acción.
Recuerda que los plugins son totalmente gratuitos, el servidor LiteSpeed si que tiene un coste de licencia, pero ese coste ya lo asumimos en GINERNET para que puedas hacer uso de los plugins sin necesidad de pagar nada.
3 - Activar LSCaché sin plugin
Si tu web no tiene un módulo para LiteSpeed, puedes aplicar la siguiente directiva al principio de tu fichero .htaccess para cachear el contenido de tu web:
- Para cachear todo el contenido:
RewriteRule ^(.*) - [E=Cache-Control:max-age=86400]
- Para cachear un fichero concreto:
RewriteRule ^fichero.php$ - [E=Cache-Control:max-age=86400]
La variable max-age especifica en segundos el tiempo que permanecerá cacheado el contenido, pasado ese tiempo la caché se vaciará.
86400 segundos = 1 día
4 - Configurar crawler LiteSpeed para Prestashop o WordPress
El crawler de LiteSpeed para Prestashop (también funciona para Wordpress) es un script que se encarga de rastrear de forma automática y periódica todas las páginas de tu web para introducirlas en la caché. De esta forma cuando un usuario visite tu web, ya la podrá descargar desde la caché (más rápido).
Para que el crawler sepa que páginas queremos introducir en la caché, tenemos que generar un sitemap. Esto lo podemos hacer con la herramienta Google Sitemap de Prestashop.
Descarga el fichero crawler y súbelo por FTP (no hace falta que lo metas dentro de public_html)
Accede a tu cPanel y crea un cron diario, por ejemplo a la 3:00 AM con este comando:
bash /home/USUARIO/cachecrawler.sh -m URL_SITEMAP >/dev/null 2>&1
Por ejemplo, así:
bash /home/ginernet/cachecrawler.sh -m https://ginernet.com/sitemap_index.xml >/dev/null 2>&1
Puedes contactar con nosotros para que comprobemos que has creado correctamente el cron y que el crawler se está ejecutando correctamente
5 - Optimizar LSCache en WordPress
Cuando instalas el plugin LSCache de WordPress son muchas las opciones que puedes tocar y no hay una configuración universal que sirva para todas las webs. A continuación te mostramos unas settings que nosotros hemos comprobado funcionan con la mayoría de las webs y ofrecen un nivel de optimización y mejora sobresaliente.
- Cache General
Enable Cache ON Cache Logged-in Users ON Cache Commenters ON Cache REST API ON Cache Login Page ON Cache favicon.ico OFF Cache PHP Resources OFF Cache Mobile OFF
- Cache Avanzada
Instant Click ON
- Page Optimization > CSS Settings
CSS Minify OFF CSS Combine OFF Generate UCSS OFF UCSS Inline OFF CSS Combine External and Inline OFF Load CSS Asynchronously ON CCSS Per URL ON Inline CSS Async Lib ON Font Display Optimization Swap
- Page Optimization > JS Settings
JS Minify OFF
JS Combine OFF
JS Combine External and Inline OFF
Load JS Deferred OFF
- Page Optimization > HTML Settings
HTML Minify ON
DNS Prefetch Control ON
Remove Query Strings OFF
Load Google Fonts Asynchronously OFF
Remove Google Fonts OFF
Remove WordPress Emoji OFF
Remove Noscript Tag OFF
6 - Protección ReCAPTCHA de LiteSpeed
En los servidores con LiteSpeed existe la posibilidad de proteger el acceso al sitio web mediante una verificación reCAPTCHA.
Esta protección se configura de una forma muy simple mediante .htaccess, a continuación de explicamos como.
- Si quieres proteger toda la web para unos paises concretos concretos
<IfModule LiteSpeed> RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(CN|RU)$ RewriteRule .* - [E=verifycaptcha][L] </IfModule>
donde el valor CN|RU indica que los paises con protección son China y Rusia
- Si quieres proteger toda la web para todo el mundo
<IfModule LiteSpeed> RewriteRule .* - [E=verifycaptcha]
</IfModule>
Cuidado con esta regla, ya que las pasarelas de pago no podrán ejecutar notificaciones al no poder resolver el re-capctha.
- Si quieres proteger toda la web excepto algunos directorios/ficheros concretos
<IfModule LiteSpeed>
RewriteCond %{REQUEST_URI} !^/directorio/excluido/ RewriteCond %{REQUEST_URI} !^/fichero/excluir.php RewriteRule .* - [E=verifycaptcha]
</IfModule>
- Si quieres proteger solo algunos directorios/ficheros concretos
<IfModule LiteSpeed> RewriteRule fichero.php - [E=verifycaptcha] RewriteRule ^directorio - [E=verifycaptcha] RewriteRule ^directorio/permitido - [E=verifycaptcha] RewriteRule ^directorio/fichero.php - [E=verifycaptcha] </IfModule>
<IfModule LiteSpeed> RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(CN|RU)$ RewriteRule ^(.*)$ - [F,L] </IfModule>
7 - Configurar valores php.ini personalizados en LiteSpeed
LiteSpeed te permite modificar mediante .htaccess ciertos parámetros de PHP.
- Edita tu fichero .htaccess y defines los valores que quieras, aquí tienes un ejemplo de sintaxis.
php_value max_execution_time 300 php_value memory_limit 2048M php_value upload_max_filesize 2048M php_value post_max_size 2048M
- Para verificar que valores está devolviendo el servidor, debes crear una página php de prueba y dentro ejecutar la función phpinfo, tal que así:
<?php
phpinfo();
?>
8 - Eliminar el timeout del servidor LiteSpeed
Las directivas de esta sección provocan que los procesos de LiteSpeed nunca se maten, lo cual puede provocar que tu servidor se sature y por tanto que tu web quede inaccesible. Debes estar seguro de lo que estás haciendo.
Cualquier proceso de LiteSpeed lo tenemos configurado para que se mate automáticamente a los 300 segundos de haberse iniciado. Normalmente, cuando un usuario ejecuta una acción en una web y el resultado tarda más de este tiempo en ejecutarse es porque hay algún problema, por eso, el proceso se mata para evitar saturar el servidor con procesos zombis. No obstante, si necesitas eliminar este límite puedes hacerlo, te lo explicamos a continuación.
LiteSpeed tiene una directiva .htaccess que permite configurar el servidor web para ignore el timeout, es la siguiente:
1. Para algunas URL
<IfModule Litespeed> RewriteEngine On RewriteRule ^fichero\.php$ - [E=noabort:1, E=noconntimeout:1] RewriteRule ^.*/fichero\.php$ - [E=noabort:1, E=noconntimeout:1] RewriteRule ^directorio/ - [E=noabort:1, E=noconntimeout:1] RewriteRule ^directorio/fichero\.php$ - [E=noabort:1, E=noconntimeout:1] </IfModule>
RewriteRule ^fichero\.php$ - [E=noabort:1, E=noconntimeout:1]
- Esta regla se aplica al archivo “fichero.php” en la raíz del directorio. El
^
asegura que la URL comience con “fichero.php” y el$
garantiza que no haya nada después de “.php”.
- Esta regla se aplica al archivo “fichero.php” en la raíz del directorio. El
RewriteRule ^.*/fichero\.php$ - [E=noabort:1, E=noconntimeout:1]
- Esta regla se utiliza para aplicar las directivas especificadas a cualquier archivo llamado “fichero.php”, sin importar en qué directorio se encuentre dentro de la estructura de tu sitio web.
RewriteRule ^directorio/ - [E=noabort:1, E=noconntimeout:1]
- Esta regla se aplica a cualquier URL que comience con “directorio/”. Afecta a todos los archivos y subdirectorios dentro de “/directorio”.
RewriteRule ^directorio/fichero\.php$ - [E=noabort:1, E=noconntimeout:1]
- Esta regla se aplica específicamente al archivo “fichero.php” dentro del directorio “directorio”. Al igual que en la primera regla, el
^
y el$
aseguran que la URL coincida exactamente con “directorio/fichero.php”.
- Esta regla se aplica específicamente al archivo “fichero.php” dentro del directorio “directorio”. Al igual que en la primera regla, el
Si no sabes cual es el fichero al que debes ampliarle el tiempo de ejecución, puedes averiguarlo ejecutando el siguiente comando en la tarminal de cPanel:
top -c
2. Para todas las URL
No te recomendamos eliminar el timeout para todas las páginas, el 99% de los casos solo es necesario eliminar el timeout a algún fichero concreto, mira por tanto el método 1 anterior para eliminar el timeout solo en algunas URL.
Si aún así necesitas eliminarlo para todas las páginas, esta es la directiva que debes usar:
<IfModule Litespeed> RewriteEngine On
RewriteRule .* - [E=noabort:1, E=noconntimeout:1] </IfModule>
<IfModule Litespeed>
SetEnv noabort 1
SetEnv noconntimeout 1
</IfModule>
SI TU SERVIDOR SE HA SATURADO Y TU WEB ESTÁ INACCESIBLE, ASÍ PUEDES REPARARLO:
Debes acceder al cPanel del dominio en cuestión y pinchar en el botón “Terminal”
Se te abrirá una terminal donde puedes matar todos los procesos ejecutando el siguiente comando:
kill -9 -1