Come abilitare HTTP/2 con supporto ALPN su NGINX e Centos 7
Rackone · 2 min di lettura · Aggiornato il
In questo articolo
Che cos’è il protocollo HTTP/2
Il protocollo HTTP/2 è l'evoluzione del precedente HTTP/1.1 che rende possibile la comunicazione tra il server web hosting e il browser.
La principale novità che introduce http/2 è la funzionalità del multiplexing che permette al web server e al browser di trasferire i vari file di un sito web tramite un unica connessione.
I vantaggi principali sono la velocità di caricamento dei contenuti web.
Centos 7 attualmente supporta HTTP/2 ma non ALPN , ALPN acronimo di Application-Layer Protocol Negotiation è un'estensione TLS che permette la negoziazione del protocollo tra server e client.
Questo perchè Centos 7 non include le ultime versioni di openssl, in questa guida vederemo come ricompilare nginx per utilizzare una versione openssl che supporti ALPN.
Prerequisiti
Un server o un VPS con Centos 7 installato, un sertificato SSL valido (anche Let's Encrypt), accesso di root.
Installazione dei tools di sviluppo
Questa operazione prepara il sistema alla compilazione, scaricando i pacchetti necessari:
yum -y groupinstall 'Development Tools'
yum -y install wget openssl-devel libxml2-devel libxslt-devel gd-devel perl-ExtUtils-Embed GeoIP-develDefinizione delle versioni di openssl e di Nginx
Definiamo le versioni di openssl e di Nginx, al momento della scrittura di questa guida le versioni stabili più recenti sono:
OPENSSL="openssl-1.1.0f"
NGINX="nginx-1.12.1-1"Installiamo openssl
Scarichiamo l'ultima versione stabile di Openssl e la posizioniamo in /opt/lib:
mkdir -p /opt/lib
wget https://www.openssl.org/source/$OPENSSL.tar.gz -O /opt/lib/$OPENSSL.tar.gz
tar -zxvf /opt/lib/$OPENSSL.tar.gz -C /opt/libCompiliamo ed installiamo Nginx
rpm -ivh http://nginx.org/packages/centos/7/SRPMS/$NGINX.el7.ngx.src.rpm
sed -i "s|--with-http_ssl_module|--with-http_ssl_module --with-openssl=/opt/lib/$OPENSSL|g" /root/rpmbuild/SPECS/nginx.spec
rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec
rpm -ivh /root/rpmbuild/RPMS/x86_64/$NGINX.el7.centos.ngx.x86_64.rpmConfiguriamo l'host Nginx per il nuovo protocollo
tralasciando la configurazione di ssl in Nginx riportiamo la piccola modifica necessaria per abilitare il nuovo protocollo sul web server, modifichiamo la riga:
listen 443 ssl;in:
listen 443 ssl http2;Riavviamo nginx.
Come possiamo testare che ALPN e HTTP/2 siano abilitati?
Potete testarlo tramite il tool online HTTP/2 Test di KeyCDN che eseguirà la verifica che http/2 e ALPN siano supportati:
Complimenti! ora il nostro web server è pienamente compatibile con HTTP/2 + ALPN.
Se ti interessa un server virtuale vedi le offerte VPS di Rackone
Emergenza in corso?
Attacco in corso o dati cifrati: il presidio H24 risponde subito.
Scritto da
Rackone