CentOS 7 soporte para HTTP2 con NginX

Esta entrada sigue un poco la línea del artículo en el que comentaba que para dar soporte a HTTP/2 para los usuarios de Google Chrome tendríamos que utilizar algún repositorio ya compilado o compilar nosotros mismos NginX con las últimas versiones de OpenSSL.



En el post citado elegí la primera opción, pero encontrarme con un repositorio fiable, con un buen mantenimiento, actualizaciones y las últimas versiones de OpenSSL ha sido difícil, es por ello que decidí compilar mi propia versión de NginX con las últimas versiones de OpenSSL en CentOS 7, y estos son los pasos:

sudo yum -y groupinstall 'Development Tools'
sudo yum -y install epel-release \
                   wget \
                   openssl \
                   openssl-devel \
                   zlib-devel \
                   pcre-devel \
                   redhat-lsb-core
sudo yum clean all 
sudo useradd builder 
sudo mkdir -p /opt/lib
sudo wget https://www.openssl.org/source/openssl-1.1.0g.tar.gz -O /opt/lib/openssl-1.1.0g.tar.gz
sudo tar -zxvf /opt/lib/open* -C /opt/lib
sudo rpm -ivh http://nginx.org/packages/mainline/centos/7/SRPMS/nginx-1.13.8-1.el7_4.ngx.src.rpm
sudo sed -i "s|--with-http_ssl_module|--with-http_ssl_module --with-openssl=/opt/lib/openssl-1.1.0g|g" /root/rpmbuild/SPECS/nginx.spec
sudo rpmbuild -ba --clean /root/rpmbuild/SPECS/nginx.spec
sudo rpm -Uvh --force /root/rpmbuild/RPMS/x86_64/nginx-1.13.8-1.el7_4.ngx.x86_64.rpm


En concreto las versiones son la últimas hasta la fecha (openssl 1.1.0g y nginx 1.13.8), e incluye paquetes como redhat-lsb-core que su ausencia en las últimas versiones generaba el error lsb_release: command not found al ejecutar el penúltimo paso.

Estaría también disponible un contenedor en docker con estos cambios y que intento mantener actualizado.

Comentarios