Come attivare il supporto HTTP / 2 su DirectAdmin (CentOS)

HTTP / 2 è la versione più recente del protocollo HTTP, basata su SPDY. Il suo sviluppo è stato avviato da Google e HTTP / 2 si basa in gran parte sulla base di codice e sui concetti di SPDY.

SPDY è ora obsoleto e l'adozione mondiale per HTTP / 2 è in corso. Molte società di hosting hanno già fornito supporto per HTTP / 2 grazie alla sua maggiore velocità.

Al momento della scrittura, DirectAdmin non fornisce un modo con un clic per abilitare HTTP / 2. Tuttavia, esistono diversi modi per ottenere il supporto HTTP / 2. Il metodo descritto di seguito ha dimostrato di essere l'approccio più solido e stabile.

È necessario aggiornare diversi componenti affinché HTTP / 2 abbia effetto. Per questo motivo, ti consiglio vivamente di fare un'istantanea. Se possibile, seguire questa guida su un server completamente nuovo.

Questa guida è composta da due parti: abilitazione del supporto HTTP / 2 nel web server (Apache) per i client (visitatori) e attivazione di HTTP / 2 in cURL. L'abilitazione di HTTP v2 per cURL impone alle richieste cURL provenienti dal tuo server di utilizzare HTTP / 2 per i suoi server di destinazione, se possibile.

Punti chiave

  • Non è necessario aggiornare sia Apache che cURL per utilizzare HTTP / 2. Va bene se segui entrambe le guide, poiché funzionano separatamente l'una dall'altra.
  • Ci sono stati alcuni strani casi in cui Apache e HTTP / 2 sembrano funzionare correttamente, ma il caricamento riesce su browser "casuali" e siti diventano irraggiungibili (timeout) su altri. Il semplice ripristino della configurazione originale di Apache risolverà questo problema, poiché Apache non sarà a conoscenza di HTTP / 2 e non tenterà di pubblicare il contenuto su di esso.
  • Effettuare sempre un backup o eseguire un'istantanea in anticipo. L'abilitazione di HTTP / 2 può essere un processo relativamente fragile, quindi è importante poter ripristinare le modifiche se necessario.
  • La ricompilazione del software può sempre causare lievi tempi di inattività. In alcuni casi, ci vuole meno di un minuto, ma non c'è modo di dirlo esattamente. Dovresti essere almeno pronto per un po 'di tempo libero.
  • Per questa guida è necessario l'accesso root al server. Se non si è in grado di elevare il livello delle autorizzazioni a root, è necessario contattare l'amministratore del server per abilitare HTTP / 2 sul server.

HTTP / 2 e SSL

Sebbene non sia un requisito tecnico dallo stesso HTTP / 2, nella maggior parte dei casi sarà necessario un certificato SSL per utilizzare HTTP / 2. Come accennato, HTTP / 2 non lo richiede tecnicamente, ma molti browser (Safari, Chrome, Firefox, ecc.) Hanno creato questo standard. Il contenuto non verrà pubblicato su HTTP / 2 quando una pagina viene caricata senza SSL utilizzando questi browser. Considerando che la maggior parte degli utenti utilizza questi browser (e altri) che partecipano anche a questo standard, è necessario utilizzare un certificato SSL.

Se stai cercando un certificato SSL gratuito, dovresti dare un'occhiata a una delle nostre guide Let's Encrypt:

Consigliato: installazione di Let's Encrypt su DirectAdmin

Pannelli di controllo alternativi:

Guide generali:

FAQ

Questa guida documenta l'installazione di Brotli?

No, non è stato delineato alcun metodo per l'installazione di Brotli insieme a HTTP / 2 in questo articolo.

La compilazione fallisce senza motivo e ho seguito i passaggi esatti delineati in questo articolo. Come lo risolvo?

Anche se ci sono molte possibili ragioni per questo, tenendo conto di ambienti diversi e simili, probabilmente le impostazioni della tua locale non sono corrette. Prova a mettere LC_ALL=Cdavanti ai tuoi comandi, quindi il comando per ricompilare Apache sarebbe simile a questo per esempio: LC_ALL=C ./build apache non dimenticare lo spazio tra LC_ALL=Ce il comando!

Perderò qualche dato?

Nel caso in cui si stia utilizzando un'impostazione di proxy inverso, ad esempio con Apache e Nginx, è necessario ripristinarlo su Apache, nel qual caso si perderebbero effettivamente i file di configurazione di Nginx. Nel caso in cui tu abbia effettuato configurazioni VirtualHost personalizzate (tramite la riga di comando o DirectAdmin stesso), dovresti modificarle in base al dominio in modo che le versioni di Apache rimangano attive. Non perderete alcun dato relativamente a dati dell'utente, contenuto del sito Web, database, ecc.

Queste versioni personalizzate mi impediranno di aggiornare pacchetti e software in futuro?

In generale, non è necessario preoccuparsi di questo. Tenendo conto della configurazione modulare di DirectAdmin (e quindi di CustomBuild), in futuro dovresti essere in grado di eseguire il downgrade o l'aggiornamento ad altre versioni del software senza problemi. Sebbene sia necessario documentare le modifiche nel caso in cui in futuro sia necessario un percorso di aggiornamento alternativo, non è necessario preoccuparsi delle versioni incompatibili con le nuove versioni del software.

DirectAdmin non offre HTTP / 2 pronto all'uso; sicuramente questo significa che non è compatibile o hanno i loro motivi per non esserlo. Perché è necessaria questa soluzione alternativa?

I metodi per installare e abilitare HTTP / 2 descritti di seguito non sono così tante soluzioni alternative, ma solo semplici aggiornamenti dei pacchetti e modifiche alla configurazione. A causa della configurazione modulare di DirectAdmin, queste modifiche sono perfettamente corrette e non dovrebbero causare problemi o altri problemi. È difficile determinare perché DirectAdmin non lo supporta immediatamente, dato che gli autori non hanno fornito una spiegazione per questo. Tuttavia, una conclusione piuttosto solida è che DirectAdmin utilizza i pacchetti versione dal sistema operativo. Questi non sono generalmente aggiornati come i pacchetti seguenti. Non c'è nulla di sbagliato in HTTP / 2, nella tecnologia stessa e nella sua compatibilità. Proprio come molte altre tecnologie, può essere necessario del tempo per adattarsi in modo nativo.

Quali sono i possibili rischi dell'attivazione di HTTP / 2 con Apache?

Nell'attivazione di HTTP / 2 (che consiste in un processo di aggiornamento e configurazione) ci sono molte variabili che possono risultare non standard. Il rischio maggiore risiede nell'errore umano, tuttavia. Scatta un'istantanea in anticipo, assicurati di annunciare la manutenzione ai tuoi utenti (se ce ne sono sul server a parte te stesso) e fai attenzione. Inoltre, non copiare e incollare i comandi senza pensare a cosa fanno prima.

Consiglio vivamente di girare temporaneamente un'istanza cloud Vultr separata con DirectAdmin e di seguire i passaggi. Se qualcosa dovesse andare storto su un'installazione "nuova", saprai dove e come eseguirne il debug in modo da non doverlo fare in un ambiente di produzione.

Parte 1: Apache (web server)

Se si sta attualmente utilizzando un proxy inverso, è necessario tornare a un ambiente solo Apache. Questo perché HTTP / 2 è molto difficile da eseguire il debug se qualcosa va storto. Potendo utilizzare la funzionalità HTTP / 2 integrata di Apache, sei effettivamente in grado di eliminare gran parte dei problemi.

Passaggio 1: aggiornamento di OpenSSL

In molti casi, la versione di OpenSSL non è compatibile con ALPN, necessario per HTTP / 2. Pertanto, abilitiamo ALPN aggiornando OpenSSL.

Prima di tutto, assicuriamoci che la tua versione OpenSSL non sia compatibile eseguendo:

openssl version

Se la tua versione OpenSSL è inferiore alla 1.1.0f, esegui come root come segue. Altrimenti, vai al passaggio 2.

cd ~
wget ftp://ftp.openssl.org/source/openssl-1.1.0f.tar.gz
tar xzf openssl-1.1.0f.tar.gz
cd openssl-1.1.0f
./config --prefix=/usr/local/lib_http2 no-ssl2 no-ssl3 zlib-dynamic -fPIC
make depend
make install

Passaggio 2: installazione di nghttp2

Affinché HTTP / 2 funzioni, è necessario installare nghttp2. Nghttp2 è un'implementazione di HTTP / 2 (e HPACK) in C. Nghttp2 è una versione combinata del client, server e proxy HTTP / 2 in C.

Per installare nghttp2, eseguire i seguenti comandi. Fortunatamente, nghttp2 può essere creato direttamente da CustomBuild.

cd /usr/local/directadmin/custombuild
./build update
./build nghttp2

Passaggio 3: abilitazione di HTTP / 2 in Apache

Dobbiamo modificare alcuni valori nel file di configurazione di Apache per utilizzare HTTP / 2. Quando il web server non sta ottenendo le istruzioni per utilizzare una versione HTTP alternativa, non la utilizzerà. Pertanto è necessario aggiungere HTTP / 2 al file di configurazione.

Perché queste modifiche abbiano effetto, è necessaria una ricostruzione di Apache tramite CustomBuild. Poiché i parametri e i valori utilizzati da CustomBuild durante la creazione del software sono determinati in un file di configurazione dedicato, la migliore pratica è inserire queste modifiche in un file di configurazione personalizzato dedicato.

Nota: se non si inseriscono queste modifiche in un file personalizzato, molto probabilmente verranno sovrascritte e l'installazione si interromperà. Seguire le istruzioni descritte di seguito.

Esegui i seguenti comandi per creare il file e precompilarlo con i valori predefiniti in modo da poterlo modificare in seguito:

mkdir -p /usr/local/directadmin/custombuild/custom/ap2
cp -p /usr/local/directadmin/custombuild/configure/ap2/configure.apache /usr/local/directadmin/custombuild/custom/ap2/configure.apache

A partire da ora, abbiamo un file personalizzato che è identico al file di configurazione predefinito per Apache utilizzato da CustomBuild. Dobbiamo modificare il /usr/local/directadmin/custombuild/custom/ap2/configure.apachefile sostituendo la seguente stringa:

"--with-ssl=/usr" \

con:

"--enable-http2" \
"--enable-ssl-staticlib-deps" \
"--with-ssl=/usr/local/lib_http2" \

Nota: assicurarsi che non vi siano spazi bianchi dopo una delle barre rovesciate . Gli spazi bianchi in eccesso causeranno la rottura della build.

Successivamente, ricostruisci Apache. CustomBuild utilizzerà il file di configurazione personalizzato che hai appena creato:

./build apache

Passaggio 4: modifica della configurazione di Apache

Apache è stato ora ricostruito includendo i moduli e le impostazioni necessari per HTTP / 2. Ciò significa che ora abbiamo una versione di Apache installata sul nostro server con supporto per HTTP / 2, ma dobbiamo dire ad Apache di usarla prima.

Aggiungi le seguenti righe in /etc/httpd/conf/extra/httpd-includes.conf:

ProtocolsHonorOrder On
Protocols h2 h2c http/1.1

Salvare queste modifiche e riscrivere i file di configurazione in modo che siano persistenti nelle ricostruzioni:

cd /usr/local/directadmin/custombuild
./build rewrite_confs

HTTP / 2 ora dovrebbe essere attivo sul tuo server web (Apache).

Passaggio 5: riavviare il server

Riavviare il server per assicurarsi che le modifiche persistano durante i riavvii. Riavviare il server tramite il pannello di controllo Vultr o eseguendo il rebootcomando.

Passaggio 6: test HTTP / 2

La funzionalità di HTTP / 2 può essere facilmente testata utilizzando il seguente strumento: Test HTTP / 2

Considerando che HTTP / 2 è specifico del server e non può essere limitato a una coppia specifica di domini o siti Web, l'immissione di qualsiasi nome di dominio che punta al server o anche l'indirizzo IP del server dovrebbe funzionare.

Il test ti dirà se è in grado di raggiungere il server Web tramite HTTP / 2. Nel caso in cui lo strumento indichi che HTTP / 2 è attivato sul server, i siti Web DirectAdmin possono ora essere raggiunti tramite HTTP / 1.1 o HTTP / 2. Nel caso in cui il supporto HTTP / 2 non sia disponibile per il client (visitatore), il suo browser tornerà a HTTP / 1.1.

Nel caso in cui lo strumento non riesca a raggiungere il server Web tramite HTTP / 2, seguire di nuovo i passaggi precedenti. In genere (poiché i passaggi precedenti non sovrascrivono nulla attivamente), ciò non danneggerà né interromperà la configurazione.

Parte 2: cURL

Consiglio di aggiornare cURL in modo che sia in grado di raggiungere i server con supporto HTTP / 2. Nel caso in cui un server non supporti HTTP / 2, tornerà a HTTP / 1.1.

Passaggio 1: aggiunta del file di configurazione personalizzato

Proprio come con Apache, creeremo un file di configurazione personalizzato in modo che cURL creato da CustomBuild utilizzi le nostre impostazioni personalizzate.

Crea la directory:

mkdir -p /usr/local/directadmin/custombuild/custom/curl

Crea il file:

touch /usr/local/directadmin/custombuild/custom/curl/configure.curl

Copia e incolla i seguenti contenuti nel file:

#!/bin/sh
perl -pi -e 's|CURL_CHECK_PKGCONFIG\(zlib\)|#CURL_CHECK_PKGCONFIG(zlib)|g' configure.ac
LIBS="-ldl" ./configure --with-nghttp2=/usr/local --with-ssl=/usr/local/lib_http2

Come puoi vedere, questi contenuti indicano che cURL deve essere compilato usando la lib_http2libreria SSL.

Salvare il file e assegnargli le autorizzazioni corrette:

chmod 700 /usr/local/directadmin/custombuild/custom/curl/configure.curl

Passaggio 2: creazione di cURL

Successivamente, tutto ciò che dobbiamo fare è costruire cURL.

cd /usr/local/directadmin/custombuild
./build curl

cURL è stato ora compilato con il supporto HTTP 2.



Leave a Comment

Come installare e configurare CyberPanel sul server CentOS 7

Come installare e configurare CyberPanel sul server CentOS 7

Usi un sistema diverso? Introduzione CyberPanel è uno dei primi pannelli di controllo sul mercato che è sia open source che utilizza OpenLiteSpeed. Che cosa

Come installare e configurare Sensu Monitoring su CentOS 7

Come installare e configurare Sensu Monitoring su CentOS 7

Introduzione Sensu è una soluzione di monitoraggio gratuita e open source che può essere utilizzata per monitorare server, applicazioni e vari servizi di sistema. Sensu i

Come installare OpenMeetings su CentOS 7

Come installare OpenMeetings su CentOS 7

Usi un sistema diverso? Apache OpenMeetings è unapplicazione per conferenze Web open source. È scritto in Java e supporta più server di database. io

Come usare Sudo su Debian, CentOS e FreeBSD

Come usare Sudo su Debian, CentOS e FreeBSD

Luso di un utente sudo per accedere a un server ed eseguire comandi a livello di root è una pratica molto comune tra Linux e Unix Systems Administrator. Luso di un sud

Come installare RabbitMQ su CentOS 7

Come installare RabbitMQ su CentOS 7

Usando un sistema diverso? RabbitMQ è un broker di messaggi open source ampiamente utilizzato scritto nel linguaggio di programmazione Erlang. Come middleware orientato ai messaggi

Installazione di Nginx-RTMP su CentOS 7

Installazione di Nginx-RTMP su CentOS 7

Usi un sistema diverso? RTMP è ottimo per pubblicare contenuti live. Quando RTMP è associato a FFmpeg, i flussi possono essere convertiti in varie qualità. Vultr i

Come installare TaskBoard 0.3.1 su CentOS 7

Come installare TaskBoard 0.3.1 su CentOS 7

TaskBoard è unapp Web di gestione del tempo gratuita e open source. Ispirato da Kanban, TaskBoard può aiutarti a tenere traccia delle cose che devono essere fatte in a

Come installare Gradle su CentOS 7

Come installare Gradle su CentOS 7

Usi un sistema diverso? Gradle è un set di strumenti di automazione di build gratuito e open source basato sui concetti di Apache Ant e Apache Maven. Gradle fornisce

Installa un server FTP con ProFTPd su CentOS 6 o CentOS 7

Installa un server FTP con ProFTPd su CentOS 6 o CentOS 7

Usi un sistema diverso? In questa guida, vedremo come configurare un server FTP (ProFTPd) per trasferire file tra il tuo PC e il tuo server.

Installazione di Netdata su CentOS 7

Installazione di Netdata su CentOS 7

Usando un sistema diverso? Netdata è una stella nascente nel campo del monitoraggio delle metriche di sistema in tempo reale. Rispetto ad altri strumenti dello stesso tipo, Netdata:

Come installare Apache Cassandra 3.11.x su CentOS 7

Come installare Apache Cassandra 3.11.x su CentOS 7

Usi un sistema diverso? Apache Cassandra è un sistema di gestione di database NoSQL gratuito e open source progettato per fornire scalabilità, alta

Come installare Just Cause 2 (JC2-MP) Server su CentOS 7

Come installare Just Cause 2 (JC2-MP) Server su CentOS 7

In questo tutorial imparerai bene come configurare un server multiplayer Just Cause 2. Prerequisiti Assicurarsi che il sistema sia completamente aggiornato prima di iniziare

Come installare Starbound Server su CentOS 7

Come installare Starbound Server su CentOS 7

Usando un sistema diverso? In questo tutorial, spiegherò come impostare un server Starbound su CentOS 7. Prerequisiti Devi possedere questo gioco su di te

Installazione e configurazione di ZNC su CentOS 7

Installazione e configurazione di ZNC su CentOS 7

ZNC è un buttafuori IRC gratuito e open source che rimane permanentemente connesso a una rete in modo che i client possano ricevere messaggi inviati mentre sono offline. Thi

Come installare Django su CentOS 7

Come installare Django su CentOS 7

Django è un popolare framework Python per la scrittura di applicazioni Web. Con Django, puoi creare applicazioni più velocemente, senza reinventare la ruota. Se vuoi

Come impostare lautenticazione a due fattori (2FA) per SSH su CentOS 6 utilizzando Google Authenticator

Come impostare lautenticazione a due fattori (2FA) per SSH su CentOS 6 utilizzando Google Authenticator

Dopo aver modificato la porta SSH, configurato il port knocking e apportato altre modifiche per la sicurezza SSH, cè forse un altro modo per proteggerti

Come installare MyCLI su Linux (CentOS, Debian, Fedora e Ubuntu)

Come installare MyCLI su Linux (CentOS, Debian, Fedora e Ubuntu)

Introduzione MyCLI è un client da riga di comando per MySQL e MariaDB che ti consente di completare automaticamente e ti aiuta con la sintassi dei tuoi comandi SQL. MyCL

Come installare Directus 6.4 CMS su un VPS CentOS 7 LAMP

Come installare Directus 6.4 CMS su un VPS CentOS 7 LAMP

Usi un sistema diverso? Directus 6.4 CMS è un sistema di gestione dei contenuti senza testa (CMS) potente e flessibile, gratuito e open source che fornisce agli sviluppatori

Creare una rete di server Minecraft con BungeeCord su Debian 8, Debian 9 o CentOS 7

Creare una rete di server Minecraft con BungeeCord su Debian 8, Debian 9 o CentOS 7

Cosa ti serve Un VPS Vultr con almeno 1 GB di RAM. Accesso SSH (con privilegi di root / amministrativi). Passaggio 1: installare prima BungeeCord

Come installare MaraDNS su CentOS 6

Come installare MaraDNS su CentOS 6

MaraDNS è un programma server DNS open source leggero ma robusto. Rispetto ad altre applicazioni dello stesso tipo, come ISC BIND, PowerDNS e djbdns

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane

ReactOS: è questo il futuro di Windows?

ReactOS: è questo il futuro di Windows?

ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.

Rimani connesso tramite lapp desktop WhatsApp 24*7

Rimani connesso tramite lapp desktop WhatsApp 24*7

Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per l'estrazione dei dati dai Big Data

Che cosè un file system di journaling e come funziona?

Che cosè un file system di journaling e come funziona?

Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true

Singolarità tecnologica: un lontano futuro della civiltà umana?

Singolarità tecnologica: un lontano futuro della civiltà umana?

Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Limpatto dellintelligenza artificiale nella sanità 2021

Limpatto dellintelligenza artificiale nella sanità 2021

L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.