Cambia de SO: Ahora con HTTP/2 y Cifrado SSL

Let's Encrypt + Http/2 + Nginx + Pagespeed

Ha tardado, pero al final ha llegado. Siento las disculpas si llegaste hasta aquí hace algún día y te has encontrado con el mensaje por defecto de Nginx o directamente no respondía. La razón de esa pequeña indisponibilidad ya está resuelta y no es ni más ni menos que la configuración de un certificado SSL, el soporte de HTTP/2 y la activación del módulo pagespeed para Nginx.

Logo Nginx
Un servidor web muy rápido, pero hasta que lo configuras…

La verdad es que estos problemas surgen de escoger a Nginx como servidor en lugar de coger el más conocido en esta materia: Apache. Este último es compatible con un montón de módulos y la instalación de los mismos es automática. Si no me equivoco, la instalación del certificado SSL de Let’s Encrypt es prácticamente introducir un único comando y ya. Yo, sin embargo, me ha tocado seguir algún que otro tutorial para solucionarlo, editando los archivos de configuración de Nginx.

Otro de los módulos que también andaba detrás desde hace algún tiempo es Pagespeed. Este módulo, creado por Google, permite optimizar varios aspectos de la web, haciéndola más ligera, como por ejemplo, reduciendo el tamaño de las imágenes, o combinando varios archivos Javascript o CSS en uno mismo, reduciendo el número de peticiones al servidor, y aumentando así la velocidad de carga de la web.

ngx_pagespeed
El módulo ngx_pagespeed, compilándolo con Nginx

Me ha tocado compilar Nginx, aunque la tarea no ha dolido demasiado debido a un script que tiene publicado el proyecto Pagespeed. Sólo ha sido necesario pasarle unos flags en medio de la ejecución para activar los módulos correspondientes:

--with-ipv6 --with-http_ssl_module --with-http_v2_module

Lo más llamativo, eso sí, es que se compila en la ruta /usr/local/nginx, y los binarios se localizan todos dentro de ahí, incluyendo ficheros de configuración. Ha sido necesario crear un enlace simbólico al binario en sí mismo (/usr/local/nginx/sbin/nginx) desde /usr/local/sbin y otro enlace a la carpeta de configuración original (/etc/nginx) desde la que ve por defecto: /usr/local/nginx/conf. El fichero de init también ha tenido que retocarse.

Con respecto a HTTP/2. Ofrece varias mejoras a los usuarios como es la reducción de los tiempos de carga. No es mi intención explicarlas aquí todas, pero creo que lo más destacable es que a pesar de que el estándar no lo obligue, ningún navegador acepta conexiones HTTP/2 si no están sin cifrar.

Logo de Let's Encrypt
El proyecto que promueve un Internet cifrado para todos

Mención aparte se merece la iniciativa de Let’s Encrypt. Hasta hace algo más de un año, si querías tener implementado SSL en tu servidor estabas obligado a usar, sí o sí, un certificado anual que te proveía alguna autoridad por no menos de 18€ al año (siendo éste el más barato que me suena haber visto, pero la mayoría pasaba de los 3o-50€). Ahora este concepto ha cambiado bastante, afortunadamente. Es necesario instalar en tu servidor un programita como certbot, creado por la EFF, que te creará e instalará él solito los certificados. Sólo habrá que decirle al servidor web que quieres usarlos para ponerlo a funcionar. Sin rendir cuentas a nadie. Eso sí, sólo es un certificado para tres meses, pero con sólo añadir el comando de renovación automática a una tarea cron, ya estará hecho.

Logo de HHVM
La máquina virtual para PHP y Hack

Y bueno, ya sólo por mencionarlo. Este servidor, aunque lo parezca, no usa PHP. Funciona con HHVM, la máquina virtual creada por Facebook para procesar PHP. Soporta prácticamente la totalidad del lenguaje PHP, pero las pruebas indican que es más veloz la implementación de la red social. Hay que hacer malabares para conseguir que funcione todo bien en un servidor que tiene sólo 1 GB de RAM. Y con esas debo pedir perdón, porque no son pocas las veces que tarda la vida en cargar una página.

Sólo me queda mencionar que seguiré haciendo pruebas con Pagespeed, así que no os asustéis si algo va mal. Volveré.

1 0

Deja un comentario