Salta al contenuto
Rackone

Notizie e guide

Come abilitare HTTP/2 con supporto ALPN su NGINX e Centos 7

Rackone · 2 min di lettura · Aggiornato il

Strumento online HTTP/2 Test con l'esito: il server supporta HTTP/2.0 e ALPN
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-devel

Definizione 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/lib

Compiliamo 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.rpm

Configuriamo 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:

Strumento online HTTP/2 Test con l'esito: il server supporta HTTP/2.0 e ALPN

Complimenti! ora il nostro web server è pienamente compatibile con HTTP/2 + ALPN.

Se ti interessa un server virtuale vedi le offerte VPS di Rackone

Il servizio Rackone

Cloud VPS

VPS hosting in Italia, Cloud VPS Linux o Windows: prestazioni senza overbooking, traffico incluso e sistemisti italiani.

Articoli correlati

Chiama Parla con un esperto