Hay varios pasos que puede seguir para aumentar el rendimiento del lado del servidor. Tenga en cuenta que algunos de estos no funcionarán con la mayoría de los hosts compartidos. Para un gran rendimiento, generalmente necesita un control más detallado.
Al igual que con cualquier optimización, debe medir el efecto que tiene en el rendimiento de su sitio. Para las optimizaciones básicas, son útiles herramientas como PageSpeed e YSlow (recomiendo las versiones de Firefox). Para una comprensión más profunda, tendrá que medir los tiempos de respuesta reales de su sistema en vivo durante un período de tiempo.
PHP
Habilitar almacenamiento en caché de código de operación
Esto es probablemente lo más importante que puede hacer para aumentar el rendimiento de su sitio. Recomiendo usar OpCache o APC . La configuración de estos cachés se puede ajustar para un rendimiento aún mayor en función de las necesidades específicas de los servidores y sitios, pero la instalación ya es un gran impulso.
Actualizar la versión de PHP
La versión PHP más reciente viene regularmente con mejoras de rendimiento. Además, hay una serie de casos en los que Joomla puede usar un mejor código cuando se ejecuta en una versión PHP más nueva. A partir de hoy, no debería utilizar una versión de PHP anterior a PHP 5.4 si le preocupa el rendimiento.
Configuraciones PHP
En versiones anteriores de PHP (<= 5.3) tenga cuidado de apagar register_globals
y magic_quotes_gpc
obtener un rendimiento gratuito. En PHP> = 5.6 cambiaralways_populate_raw_post_data
a -1.
Extensiones PHP
Joomla contiene algo de código para solucionar las extensiones PHP que faltan. Esto siempre será más lento que esas extensiones. Para una mejora del rendimiento decente instalar las siguientes extensiones: mbstring
, zip
,ftp
Servidor web
Habilitar gzip
La habilitación de la compresión del lado del servidor intercambia el ancho de banda para los recursos de la CPU. Para la mayoría de los sitios, esta es la decisión correcta. Tenga cuidado de comprimir solo datos de texto, comprimir datos binarios le dará el éxito de la CPU sin las ventajas de ancho de banda. También puede habilitar la compresión en la configuración de Joomla, pero es mejor si deja que el servidor se encargue de esto.
Precomprimir recursos estáticos
No estoy hablando de minficación (aunque esto también ayuda), pero puede configurar Nginx y Apache en el servidor de recursos ya comprimidos, eliminando efectivamente el golpe de CPU de la compresión gzip. Puntos de bonificación: use Zopfli para archivos aún más pequeños.
Use FastCGI para PHP
Más específicamente debes usar php-fpm
. Esto impide iniciar PHP cuando el navegador solicita un archivo que no sea PHP.
Use los encabezados de caché apropiados
El uso del Expires
encabezado puede reducir en gran medida los recursos del servidor necesarios. Después de todo, la solicitud más rápida es la que nunca se hace.
apache
En general, recomendaría usar Nginx para sitios de alto rendimiento. Si realmente necesitas usar Apache por alguna razón, recibí un consejo extra:
Deshabilitar AllowOverride
La configuración AllowOverride
de None
evita una gran cantidad de E / S de disco y
Joomla
No use el modo FTP
Si bien no afecta a los usuarios que leen el sitio, ralentizará algunas operaciones, como la instalación de extensiones.
Desactiva las extensiones no utilizadas
Esto se aplica especialmente a los complementos, muchos de estos se ejecutan en cada solicitud. Deshabilitar los menús y componentes es principalmente útil cuando se enumeran las extensiones y los tipos de menú disponibles. También tome 5 minutos para recorrer las extensiones que vienen con el núcleo de Joomla y deshabilite las que no usa.
Desactivar Preparar contenido
Si usa muchos módulos personalizados ( mod_custom
no personalizados como en la escritura propia), verifique si puede deshabilitar Preparar contenido en ellos. Esto ahorra algo de procesamiento.
Usar almacenamiento en caché
Si te tomas en serio el rendimiento, querrás habilitar el almacenamiento en caché. Especialmente útil para leer sitios pesados con muchos usuarios anónimos. Los usuarios con sesión iniciada omitirán la mayor parte de la memoria caché; si tiene muchos de estos, el efecto no será tan grande.
Use un controlador de sesión alternativo
Al usar un controlador de sesión alternativo, puede liberar su base de datos para cosas más importantes. No recomendaría el archivo (confusamente llamado None en la configuración de Joomla), ya que eso aumentará una vez más el disco IO. El uso de APC es potencialmente el fastet, pero aumenta el riesgo de perder todos los datos de la sesión. El término medio correcto es Memcache. Si bien esto requiere un proceso adicional, es más confiable que APC y mucho más rápido que almacenar todos los datos en la base de datos
Mantenga su sitio simple
¿Realmente necesitas ese botón de Facebook? ¿Qué pasa con ese lindo ícono que nadie ve porque está parcialmente oculto detrás de un banner? Cuanto menos se muestre su sitio, más rápido será. Además, siempre que sea posible, use CSS3 en lugar de imágenes.
Diverso
Establecer un favicon
Gracias a una decisión que se remonta a los navegadores Internet Explorer 4.0, solicite un archivo llamado favicon.ico
cada vez que un usuario visita su sitio. Si no tiene uno, esto causa IO innecesarias, ya que las respuestas 404 no se almacenan en caché. Especifique el icono de su sitio con una metaetiqueta HTML o agregue un archivo llamado favicon.ico
a la raíz web. ¿No quieres un favicon? Coloque un PNG transparente con un tamaño de 1x1 píxeles en esa ubicación. Tenga en cuenta que la extensión aún debe ser .ico
.
Optimiza tus imágenes
Es sorprendente qué tipo de ahorro se puede obtener al optimizar las imágenes, especialmente los archivos PNG. Hay una variedad de herramientas disponibles para cualquier sistema operativo, personalmente uso ImageOptim, que está disponible para OS X. Las imágenes principales de Joomla ya están optimizadas, pero utilizan sus propias imágenes, especialmente las plantillas que son importantes. También puede verificar las extensiones que está utilizando. Si son de código abierto, ¿por qué no contribuye con una solicitud de extracción que contiene imágenes recién optimizadas?
El avanzado
Si realmente quieres salir, considera poner Varnish en frente de tu sitio. Almacena en caché las solicitudes a su sitio y, si es posible, las atiende desde su propio caché, sin llegar a Joomla. Es una herramienta compleja pero con mucho poder. Joomla no aprovechará la funcionalidad avanzada como Edge Side incluye (ESI), pero su propio código sí podría.