El protocolo HTTP/2 abre camino a un nuevo mundo de posibilidades a la hora de mejorar el rendimiento y la velocidad de carga de cualquier web o aplicación. Además las mejoras de velocidad, el protocolo es más estable y seguro que HTTP/1, cuyas deficiencias se han ido cubriendo a lo largo de los años con pequeños trucos a la hora de programar las aplicaciones. Todos estos problemas se solucionan ahora en la capa de transporte.
NOTA: Para activar HTTP/2 en CWP con Apache consulta la guía para activar HTTP/2 en CWP (Apache)
Contenidos
Qué es el protocolo HTTP/2
El objetivo del protocolo HTTP/2 es el de reducir los tiempos de carga y las latencias. También incluye mejoras como las prioridades de las respuestas y el soporte de push desde el servidor. Esta última funcionalidad permite enviar contenidos desde el servidor al cliente antes de que éste los pida. Pongamos como ejemplo un archivo HTML que incluye un archivo CSS. Cuando el cliente accede al archivo HTML, éste se envía y, seguidamente, se realiza una petición adicional para el archivo CSS, y lo mismo ocurriría con los posibles scripts a los que haga referencia el archivo. Sin embargo, con el protocolo HTTP/2 y la metodología push es posible enviar a la vez el archivo HTML y el archivo CSS, aumentando considerablemente la velocidad de carga a la vez que se reducen las peticiones. También se incluyen otras funcionalidades como la gestión de errores y diversos mecanismos de actualización.
El protocolo HTTP/2 no modifica el funcionamiento de las aplicaciones a nivel semántico, por lo que todos los elementos HTTP siguen vigentes. Cosas como códigos de respuesta (200, 400, 404… etc.), las cabeceras o las URLs siguen vigentes. Sin embargo, sí cambia el formato de los datos y el modo en el que son transportados del servidor al cliente, y viceversa. Todas estas tareas se encapsulan ahora en la nueva capa de entramado, por lo que no es necesario modificar las aplicaciones, que seguirán utilizando los mismos datos y capas de siempre.
Cómo activar HTTP/2 en un dominio
Para activar HTTP/2 en el CentOS Web Panel (CWP), debes seguir estos pasos:
- Lo primero que necesitas hacer es asegurarte de que en la configuración del panel tienes activada la opción de utilizar los servidores Nginx & Apache. También puedes activar la opción Nginx & Apache & Varnish. Debes asegurarte también de que las webs que quieres que usen el protocolo HTTP/2 tengan instalado un certificado SSL. Puedes utilizar uno gratuito de Letsencrypt.
Haz clic en Guardar (Save & Rebuild Configuration) para aplicar los cambios. - Ahora debes abrir una ventana de terminal o conectarte a tu servidor mediante SSH y acceder al directorio en donde están los archivos de configuración de los virtual hosts de Nginx:
cd /etc/nginx/conf.d/vhosts/
- Ahora debes editar el archivo de configuración correspondiente al dominios que quieres que utilice el protocolo HTTP/2. Los archivos de configuración seguirán el patrón «dominio_ssl_conf». Por ejemplo, el nombre del archivo de configuración del dominio midominio.com será midominio.com_ssl_conf. Puedes utilizar un editor como nano para edita este archivo:
nano midominio.com_ssl.conf
- En el archivo, debes buscar la sección que se muestra a continuación. Debes tener en cuenta que la IP que se mostrará será que tengas asignada en tu servidor:
server { listen 144.216.201.165:443;
- Modifica la línea anterior agregando ssl http2 al final de la IP:
server { listen 144.216.201.165:443 ssl http2;
- Guarda y cierra el archivo pulsando CTRL + X (si usas nano) y aceptando que se guarden los cambios.
- Por último, ya solo tienes que reiniciar nginx:
service nginx restart
- Con esto ya estará activado el protocolo HTTP/2 para el host seleccionado.
Esto nos ha servido para activar el protocolo HTTP/2 para un solo host, pero también es posible activarlo en todos los hosts de tu servidor.
Cómo activar HTTP2 en todos los dominios
Existe un método alternativo para activar este protocolo. No es necesario que hagas esto si ya has seguido los pasos anterior. Para activarlo mediante este otro método, sigue los pasos que se muestran a continuación:
- Abre una ventana de terminal o accede a tu servidor mediante SSH y edita el template de Nginx que usa CWP por defecto. Para ello utiliza este comando:
nano /usr/local/cwpsrv/htdocs/resources/conf/web_servers/vhosts/nginx/default.stpl
- Ahora debes buscar la línea que se muestra a continuación:
listen %ip%:%nginx_port% %http2%;
- Reemplaza la línea anterior por esta otra:
listen %ip%:%nginx_port% ssl http2;
- Por último, ya solo debes guardar el archivo y hacer un rebuild de la configuración del servidor. Para ello debes acceder CWP y hacer clic en CWP ADMIN. Luego navega hasta Webserver Settings -> Select WebServers. Aquí selecciona todas las configuraciones que utilicen Nginx y luego haz clic en Save & Rebuild Configuration.
Al guardar la configuración, todas las webs o aplicaciones de tu servidor comenzarán a utilizar el protocolo HTTP/2.
Cómo verificar si un dominio usa HTTP2
Existen diversos servicios online con los que podrás validar si un dominio usa este protocolo. De este modo de asegurarás de que los cambios que has hecho se han aplicado correctamente. Para ello puedes acceder al servicio de tools.keycdn.com e introducir la URL de tu dominio en el campo de búsqueda. Haz clic en Test para probar si el dominio introducido usa el protocolo HTTP/2:
Si las pruebas se realizan correctamente y se detecta que el dominio usa el protocolo HTTP/2, verás el siguiente mensaje de confirmación, lo que indicará que has realizado la configuración correctamente:
Si las pruebas fallan y se detecta que el dominio no utiliza el protocolo HTTP/2, verás el siguiente mensaje de error, indicando que ha habido algún problema al realizar la configuración:
Y esto ha sido todo.