Supporto di HTTP/2 in Plesk
Panoramica
HTTP/2 (noto anche come HTTP/2.0 e HTTP 2.0) è la seconda versione principale del protocollo di rete HTTP utilizzato dal World Wide Web. Ratificato a maggio 2015, HTTP/2 è stato creato per rispondere ad alcuni problemi critici delle prestazioni di HTTP 1.1. I vantaggi di questo protocollo vengono illustrati qui. Attualmente HTTP/2 è supportato dalla maggior parte dei browser Web principali.
Il supporto di HTTP/2 è disponibile per i clienti di Plesk a partire dalla versione 12.5.30, aggiornamento n. 28, e richiede l’ultima versione di nginx.
Nota: HTTP/2 è supportato solo per i siti SSL, pertanto i siti non SSL continueranno a funzionare con HTTP/1.x.
Come abilitare il supporto di HTTP/2 per il sito web
Assicurati che il server web nginx sia aggiornato alla versione più recente e sia funzionante. Ciò è possibile accedendo alle pagine Strumenti e impostazioni -> Componenti del server e Strumenti e impostazioni -> Gestione di servizi.
Accedere al server tramite SSH nella root
e abilitare il supporto di HTTP/2 in Plesk mediante la seguente utility della riga di comando:
# plesk bin http2_pref enable
Durante il passaggio conclusivo, il server web nginx verrà impostato in modo da utilizzare il protocollo TLS con la crittografia più attuale e sicura, l’intera configurazione del server web verrà rinnovata e tutti i siti web dell’utente e dei clienti, dotati di supporto SSL, saranno trasferiti a HTTP/2.
Controllare l’output del comando per rilevare la presenza di errori o avvisi durante il passaggio a HTTP/2. Se vi sono problemi, consultare la sezione Risoluzione dei problemi di seguito.
Nota: per verificare che HTTP/2 sia abilitato su un dominio è possibile semplicemente utilizzare un servizio online quale https://tools.keycdn.com/http2-test.
Se si desidera tornare a HTTP 1.x e disabilitare HTTP/2, eseguire questo comando:
# plesk bin http2_pref disable
Supporto di ALPN
Per utilizzare correttamente HTTP/2 in Google Chrome, il server web di nginx deve supportare ALPN (Application-Layer Protocol Negotiation). Per ulteriori informazioni, consultare la documentazione su ALPN.
In Plesk il supporto di ALPN per il server web nginx è disponibile per i seguenti sistemi operativi: CentOS 7, RedHat Enterprise Linux 7, Ubuntu 14.04, Ubuntu 16.04 e Debian 8.
Ciò significa che il protocollo HTTP/2 basato su Plesk è utilizzabile nei sistemi operativi citati in tutti i browser più recenti.
Risoluzione di problemi:
Se si riscontrano problemi al momento di abilitare il supporto di HTTP/2 per un sito web oppure se il risultato di verifica del sito mediante https://tools.keycdn.com/http2-test mostra che è abilitato solo il protocollo HTTP 1.x, attenersi alla procedura correttiva seguente.
-
Assicurarsi che il supporto di SSL sia abilitato per il sito web nella sezione Impostazioni di hosting del dominio. HTTP/2 è supportato solo per i siti SSL, pertanto i siti non SSL continueranno a funzionare con HTTP /1.x. Si tratta di una restrizione del server web nginx e dei browser Web.
-
Verificare che nginx sia abilitato:
# plesk sbin nginxmng -s
Abilitarlo se necessario:
# plesk sbin nginxmng -e
-
Verificare che il pacchetto OpenSSL presenti la versione 1.0.1 o successive:
# rpm -qa | grep openssl openssl-1.0.1e-42.el6_7.4.x86_64.
-
Verificare che non sia presente alcun modello di configurazione personalizzato in
/usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php
. Se tale modello è presente, rimuoverlo e ricreare i file di configurazione:# plesk sbin httpdmng --reconfigure-all
In alternativa, se non si desidera rimuovere le personalizzazioni, è possibile modificare il file
/usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php
nel modo seguente.Trovare la riga simile a
($OPT['default'] ? ' default_server' : '') . ($OPT['ssl'] ? ' ssl' : '') ?>;
E sostituirla con le due righe seguenti:
($OPT['default'] ? ' default_server' : '') . ($OPT['ssl'] ? ' ssl' : '') . ($OPT['ssl'] && $VAR->domain->physicalHosting->proxySettings['nginxHttp2'] ? ' http2' : '') ?>;
Dopo di che, eseguire il comando:
# plesk bin http2_pref enable
-
In caso di problemi di connessione SSL con HTTP/2 abilitato, assicurarsi che la direttiva
ssl_ciphers
nel file/etc/nginx/conf.d/ssl.conf
o nel file personalizzatonginxDomainVirtualHost.php
presenti il valore seguente:ssl_ciphers EECDH+AESGCM+AES128:EECDH+AESGCM+AES256:EECDH+CHACHA20:EDH+AESGCM+AES128:EDH+AESGCM+AES256:EDH+CHACHA20:EECDH+SHA256+AES128:EECDH+SHA384+AES256:EDH+SHA256+AES128:EDH+SHA256+AES256:EECDH+SHA1+AES128:EECDH+SHA1+AES256:EDH+SHA1+AES128:EDH+SHA1+AES256:EECDH+HIGH:EDH+HIGH:AESGCM+AES128:AESGCM+AES256:CHACHA20:SHA256+AES128:SHA256+AES256:SHA1+AES128:SHA1+AES256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!KRB5:!aECDH:!EDH+3DES;
-
Se il sito non funziona con alcuni browser dopo l’abilitazione di HTTP/2, ciò potrebbe significare che non si dispone delle codifiche e dei protocolli necessari per il supporto di HTTP/2. Ricorrere all’utility
sslmng
di Plesk per impostare l’elenco dei protocolli e delle codifiche TLS disponibili, dopo aver abilitato HTTP/2. Ad esempio, se si desidera utilizzare esattamente lo stesso elenco di codifiche di Plesk, il comando sarà il seguente:#plesk sbin sslmng --services=nginx --custom --ciphers="EECDH+AESGCM+AES128:EECDH+AESGCM+AES256:EECDH+CHACHA20:EDH+AESGCM+AES128:EDH+AESGCM+AES256:EDH+CHACHA20" --protocols="TLSv1 TLSv1.1 TLSv1.2"
La configurazione verrà memorizzata nel file
/etc/nginx/conf.d/ssl.conf
. È preferibile non modificare questo file manualmente. -
Se nessuna delle procedure di cui sopra è efficace, contattare il supporto tecnico di Plesk.