Archivo de la categoría: Apache

Cómo activar la compresión GZIP en tu servidor

En el anterior post comentábamos algunas estrategias básicas para aumentar la velocidad de carga de nuestra web y una de las más efectivas es activar la compresión GZIP.

El primer paso que debes realizar en tu servidor es comprobar que el módulo de Apache mod_deflate esté activo. En Evidalia Host está activado por defecto tanto en VPS como en los planes compartidos. Para ello debemos comprobar el archivo de configuración de Apache

vi /etc/httpd/conf/httpd.conf

y buscar la línea

#LoadModule deflate_module modules/mod_deflate.so

Si tiene el símbolo # al principio de la línea no está activado, por lo que quitamos el símbolo y reiniciamos Apache

/etc/init.d/httpd restart

Una vez el módulo está activado, debemos indicarle al servidor que comprima las páginas. Para ello, se debe crear un archivo de configuración mod_deflate.conf dentro de /etc/httpd/conf.d/

vi /etc/httpd/conf.d/mod_deflate.conf

Dentro añadimos el siguiente código

<Location />
<IfModule mod_deflate.c>
# se comprueba que el módulo está activo

# activamos la compresión
SetOutputFilter DEFLATE

# hacemos que no comprima imágenes
SetEnvIfNoCase Request_URI \.(?:gif|jpeg|jpg|png)$ no-gzip dont-vary

# nos aseguramos de que los proxies no envien contenido incorrecto
Header append Vary User-Agent env=!dont-vary

<IfModule mod_headers.c>
# hacemos que controle bien peticiones que vienen de detras de un proxy
Header append Vary User-Agent env=!dont-vary
</IfModule>
</IfModule>
</Location>

Guardamos y reiniciamos Apache de nuevo

/etc/init.d/httpd restart

Y comprobamos que la compresión está activa usando http://checkgzipcompression.com

De esta manera habremos activado la compresión GZIP en nuestro servidor. Alternativamente, si no queremos activarla en todo el servidor, no crearíamos el archivo de configuración mod_deflate.conf e indicaríamos vía .htaccess qué peticiones deseamos que el servidor comprima.

Para configuraciones más avanzadas, recomendamos comprobar la documentación oficial de mod_deflate en http://httpd.apache.org/docs/current/mod/mod_deflate.html

Facebooktwitter

Cómo mejorar la velocidad de carga de tu página web

Una de las métricas que utiliza Google para analizar tu página web con su algoritmo de ranking es la velocidad de carga de esta. Si bien es cierto que no contribuye significativamente, sí que puede marcar una diferencia a la hora de mejorar nuestra posición en el buscador una vez tenemos los puntos más básicos para mejorar el SEO cubiertos.

Aparte de la importancia que la velocidad de carga tiene a la hora de posicionarse en Google, tenemos que tener en cuenta que cada segundo que restemos de nuestro tiempo de carga hará que nuestros visitantes continuen navegando, que confíen en nuestro sitio y que hablen a otros de nuestra web. En el caso de tiendas online por ejemplo, unos pocos segundos pueden marcar una enorme diferencia.

Pasemos a ver los pasos más importantes para mejorar la velocidad de carga:

  • Habilitar la compresión gzip: hoy en dia cualquier navegador moderno soporta la compresión gzip. Esta técnica consiste en que el servidor comprime la página a la hora de enviarla al usuario y el navegador automáticamente la descomprime, reduciendo el tamaño de la página en una media de un 70%. Para activar la compresión gzip, debemos habilitar mod_deflate en Apache
  • Aprovecha la caché del navegador: cuando visitas una página web por primera vez, el navegador descarga todos los recursos que esta utiliza (imágenes, CSS, javascript). Lo más normal es que estos recursos no cambien y sirvan para la siguiente visita, por lo que cada recurso debe indicar una política de cacheado mediante la cabecera Cache-Control que indique para cuánto tiempo es válido cada recurso. Además de los recursos, se pueden cachear páginas completas de forma que el servidor no tiene que generar contenido dinámico cada vez que un usuario visita una página. Estas técnicas pueden ahorrar muchísimo tiempo de proceso en el servidor, lo cual se traduce en mayor velocidad de carga y es muy fácilmente implementable en la mayoría de CMS mediante plugins como por ejemplo WP Super Cache para WordPress.
  • Minifica tus recursos: consiste en eliminar contenido innecesario o redundante en nuestras hojas de estilo o scripts javascript reduciendo el tamaño de estos recursos. Muy sencillo de implementar con herramientas como http://jscompress.com/ y http://cssminifier.com/
  • Optimiza tus imágenes: hay muchas maneras de optimizar el uso de las imágenes en nuestra página web, desde simplemente comprimir las imágenes a sustituirlas por imágenes vectorizadas. Google tiene una guía muy completa al respecto.
  • Usa CDNs para cargar tus recursos: un CDN o Content Delivery Network, es una red de servidores distribuidos que sirven contenido web basándose en la situación geográfica del usuario, es decir, si te visita un usuario en París, pero tienes tu página hospedada en Evidalia cuyos servidores están en España, usando un CDN para cargar tus recursos (CSS, javascript) estos se cargarán del servidor que el CDN tiene en París, por lo que tu página web tendrá menos latencia para el usuario. Utilizarlo es muy sencillo, los scripts más utilizados como jQuery o Bootstrap se pueden obtener muy fácilmente desde un CDN y es tan fácil como sustituir:
    <script src="/scripts/jquery-1.11.2.min.js"></script>
    <link href="/css/bootstrap.min.css" rel="stylesheet">

    por:

     <script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
     <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">

Google nos proporciona una herramienta llamada PageSpeed Insights que podemos utilizar para comprobar cada uno de los puntos más básicos, además de otros más avanzados, que influyen en la velocidad de carga de nuestra web y que Google tiene en cuenta y nos muestra consejos sobre qué puntos debemos mejorar en nuestra página.

Facebooktwitter

Forzar a usar una conexión segura

Forzar a usar una conexión seguraHace tiempo os comentamos los caracteres extraños que aparecían en la url de Google, y esto era simplemente porque el buscador forzaba a sus usuarios a utilizar una conexión segura o conexión SSL.

Si por la circunstancia que sea, necesitas que todas las visitas a tu sitio utilicen una conexión segura, puedes forzar su uso mediante el uso del fichero .htaccess , aunque lo primero que haremos será comprobar que podemos disponer del módulo mod_rewrite, ya que éste es necesario. Sigue leyendo

Facebooktwitter

Forzar la descarga de un archivo en lugar de mostrarlo en el navegador

Forzar la descarga de un archivo en lugar de mostrarlo en el navegadorBien sea de forma nativa, bien sea por la instalación de algún complemento, los navegadores son capaces de mostrar una serie de archivos como imágenes, ficheros de texto, ficheros pdf, etc. En cambio, hay otros que por lo general son descargados directamente, como los ficheros comprimidos (zip, tar, gzip, rar, etc.). Lo que pretendemos en éste artículo es mostraros la manera de forzar la descarga de un archivo concreto, que por defecto se visualiza en el navegador. Sigue leyendo

Facebooktwitter

Mejorar el rendimiento de Apache optimizando AllowOverride

Mejorar el rendimiento de Apache optimizando AllowOverrideApache posee un fichero de configuración en el que le indican una serie de directivas. Estas directivas pueden ser modificadas en cada directorio gracias a la utilización de los ficheros .htaccess. Estos ficheros, por una parte nos ayudan a realizar configuraciones concretas para cada directorio, pero en cambio, reducen el rendimiento de Apache, ya que debe comprobar su existencia en cada directorio, y esto empeora aun mas cuando existen subdirectorios.

Por norma general, cuando necesitamos utilizar ficheros .htaccess, en el fichero de configuración de Apache, echaremos mano del sufrido:

AllowOverride All

Esto le indica a Apache que si encuentra cualquier fichero .htaccess por cualquiera de las carpetas, que lo lea e interprete, con el consiguiente empleo de recursos en analizar todas las carpetas en busca de alguno de estos ficheros.

Pero lo lógico sería indicar que Apache nos busque los ficheros .htaccess, únicamente en las carpetas donde los tengamos. Por ejemplo:

<Directory /ruta_a_mi_fichero_.htaccess>
   AllowOverride All
</Directory>

Gracias a esto evitaremos sobrecargar de trabajo innecesario a Apache y aumentaremos su rendimiento.

Facebooktwitter

Comprobar que Apache lee nuestro .htaccess

Comprobar que Apache lee nuestro .htaccessEs bastante habitual que en nuestro hosting web, por la razón que sea, necesitemos utilizar un fichero .htaccess. Estos ficheros normalmente agregan alguna configuración especifica para nuestra web, como redirecciones, modificaciones de url (url’s limpias), protección de directorios, etc. La mayoría de CMS’s necesitan instalar ficheros .htaccess para sus correcto funcionamiento. En el caso de que exista algún error en nuestro sitio, tal vez sea producido por una mala implementación de este archivo. Aunque en caso de error, lo primero que podemos comprobar es si Apache es capaz de leer dicho fichero. Sigue leyendo

Facebooktwitter

Solucionar el error maximum execution time of …

Solucionar el error maximum execution time ofEn ocasiones, cuando programamos algún script, es posible que este, para su ejecución, necesite mas tiempo del que tiene predefinido.

En nuestra configuración de php, y dependiendo de cada servidor, este parámetro puede variar, y en el caso de que se agotara el tiempo asignado y no hubiese terminado la ejecución de nuestro código, obtendriamos un mensaje similar al siguiente: Sigue leyendo

Facebooktwitter

Personalizar la página de error 404

Puede darse el caso de que al acceder a alguna página de nuestro sitio web el usuario teclee mal la dirección, o bien, que simplemente la página que ha indicado no exista. En estos casos y por norma general, el servidor devolverá un mensaje de error 404. Sigue leyendo

Facebooktwitter

Apache 2.4.9 corrige dos vulnerabilidades detectadas

apache-logoAcaba de ser publicada Apache 2.4.9, una versión que corrige dos bugs encontrados en versiones anteriores. Los fallos detectados, aunque no suponen un riesgo grave, si que pueden comprometer la eficiencia del servidor, ya que permiten a un atacante, provocar condiciones de denegación de servicio.

Al parecer el primero de estos fallos reside en el módulo mod_log_config que no interpreta correctamente a las cookies truncadas. El segundo error lo provoca mod_dav, que calcula de forma incorrecta el final de una cadena, eliminando caracteres especiales de esta.

Como hemos indicado, desde Apache, se han corregido dichos fallos de seguridad y se ha lanzado la versión 2.4.9

Te recomendamos actualizar apache si administras tu vps con la utilidad yum o otro gestor de paquetes para otras distribuciones de linux.

Facebooktwitter

Ocultar las extensiones con .htaccess

Gracias al fichero .htaccess podemos modificar los enlaces internos de nuestro sitio web, eliminando sus extensiones, así conseguiremos unas urls «mas amigables».

Por ejemplo, si tenemos en nuestro sitio web una página llamada http://miweb/contacto.php podremos acceder a ella tanto si indicamos «http://miweb/contacto» como si escribimos «http://miweb/contacto.php»

Para esto, deberemos recurrir al fichero de configuración .htaccess y añadirle el siguiente código:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

Este código nos permite acceder a los ficheros .php tanto si indicamos su extensión como si lo no hacemos. En el caso de que nuestro sitio web utilizara ficheros .html, deberiamos sustituir la linea

RewriteCond %{REQUEST_FILENAME}\.php -f

por esta otra:

RewriteCond %{REQUEST_FILENAME}\.html -f

Comentar que la instrucción RewriteEngine depende del módulo mod_rewrite de Apache, y es necesario que esté instalado y activado. Por defecto esto es así la mayoría de las veces, pero para estar seguros lo mejor será crear un fichero «info» y revisar si tenemos dicho módulo instalado.

Crearemos el fichero con el siguiente código:

<?php
phpinfo();
?>

Guardaremos y lo ejecutaremos para comprobar la existencia del módulo mod_rewrite.

Ocultar las extensiones con .htaccess

Facebooktwitter