Hoe HTTP / 2-ondersteuning op DirectAdmin (CentOS) te activeren

HTTP / 2 is de nieuwste versie van het HTTP-protocol, gebaseerd op SPDY. De ontwikkeling is geïnitieerd door Google en HTTP / 2 is grotendeels gebaseerd op de codebase en concepten van SPDY.

SPDY is nu beëindigd en er wordt wereldwijd gebruik gemaakt van HTTP / 2. Veel hostingbedrijven bieden al ondersteuning voor HTTP / 2 vanwege de extra snelheid.

Op het moment van schrijven biedt DirectAdmin geen manier om met één klik HTTP / 2 in te schakelen. Er zijn echter meerdere manieren om HTTP / 2-ondersteuning te verkrijgen. De hieronder beschreven methode is de meest robuuste en stabiele aanpak gebleken.

Verschillende componenten moeten worden bijgewerkt om HTTP / 2 in werking te laten treden. Daarom raad ik je ten zeerste aan om een ​​snapshot te maken. Volg indien mogelijk deze handleiding op een volledig nieuwe server.

Deze gids bestaat uit twee delen: het inschakelen van HTTP / 2-ondersteuning in de webserver (Apache) voor klanten (bezoekers) en de activering van HTTP / 2 in cURL. Het inschakelen van HTTP v2 voor cURL dwingt cURL-verzoeken die afkomstig zijn van uw server om indien mogelijk HTTP / 2 te gebruiken voor de doelservers.

Kernpunten

  • Het is niet vereist om zowel Apache als cURL bij te werken om HTTP / 2 te gebruiken. Het is prima als u beide handleidingen volgt, omdat ze afzonderlijk van elkaar functioneren.
  • Er zijn een paar vreemde gevallen geweest waarin Apache en HTTP / 2 goed leken te werken, maar het laden lukt op '' willekeurige '' browsers en sites worden onbereikbaar (time-out) op anderen. Door simpelweg terug te keren naar de oorspronkelijke Apache-configuratie wordt dit opgelost, aangezien Apache niets van HTTP / 2 af weet en er geen inhoud over probeert te presenteren.
  • Maak altijd een back-up of maak van tevoren een foto. Het inschakelen van HTTP / 2 kan een relatief kwetsbaar proces zijn, dus het is belangrijk om wijzigingen indien nodig ongedaan te kunnen maken.
  • Het opnieuw compileren van software kan altijd een kleine uitvaltijd veroorzaken. In sommige gevallen is dit minder dan een minuut, maar er is geen manier om precies te zeggen. Je moet op zijn minst voorbereid zijn op wat downtime.
  • Voor deze handleiding heeft u root-toegang tot de server nodig. Als u niet in staat bent om uw machtigingsniveau naar root te verhogen, moet u contact opnemen met de serverbeheerder om HTTP / 2 op de server in te schakelen.

HTTP / 2 en SSL

Hoewel het geen technische vereiste is van HTTP / 2 zelf, heeft u in de meeste gevallen een SSL-certificaat nodig om HTTP / 2 te gebruiken. Zoals gezegd vereist HTTP / 2 dit technisch niet, maar veel browsers (Safari, Chrome, Firefox, etc.) hebben deze standaard gemaakt. Inhoud wordt niet via HTTP / 2 weergegeven wanneer een pagina zonder SSL wordt geladen met behulp van deze browsers. Aangezien de meeste gebruikers deze browsers (en andere) gebruiken die ook aan deze standaard deelnemen, moet u een SSL-certificaat gebruiken.

Als je op zoek bent naar een gratis SSL-certificaat, bekijk dan eens een van onze Let's Encrypt-handleidingen:

Aanbevolen: Let's Encrypt installeren op DirectAdmin

Alternatieve bedieningspanelen:

Algemene gidsen:

FAQ

Documenteert deze gids de installatie van Brotli?

Nee, er is geen methode beschreven voor het installeren van Brotli naast HTTP / 2 in dit artikel.

Het compileren mislukt zonder reden en ik heb de exacte stappen in dit artikel gevolgd. Hoe los ik dit op?

Ook al zijn hier veel mogelijke redenen voor, rekening houdend met verschillende omgevingen en dergelijke, zijn uw locale instellingen mogelijk niet correct. Probeer eens LC_ALL=Cin de voorkant van uw opdrachten, zodat de opdracht voor het hercompileren Apache zou er als volgt uit bijvoorbeeld: LC_ALL=C ./build apache Do de ruimte tussen niet vergeten LC_ALL=Cen de opdracht!

Verlies ik gegevens?

Als u momenteel een reverse proxy-setup gebruikt, bijvoorbeeld met Apache en Nginx, moet u deze terugzetten naar Apache, in welk geval u inderdaad uw Nginx-configuratiebestanden zou verliezen. Als u aangepaste VirtualHost-configuraties heeft gemaakt (via de opdrachtregel of DirectAdmin zelf), moet u deze per domein wijzigen, zodat de Apache-versies actief blijven. U verliest geen gegevens met betrekking tot gebruikersgegevens, website-inhoud, databases, enz.

Zullen deze aangepaste versies me ervan weerhouden om pakketten en software in de toekomst bij te werken?

Over het algemeen hoeft u zich hier geen zorgen over te maken. Rekening houdend met de modulaire opzet van DirectAdmin (en dus met CustomBuild's) zou u in de toekomst zonder problemen moeten kunnen downgraden of upgraden naar andere softwareversies. Hoewel u de wijzigingen moet documenteren voor het geval er in de toekomst een alternatief upgradepad nodig is, hoeft u zich geen zorgen te maken over incompatibiliteitsversies met nieuwe softwareversies.

DirectAdmin biedt geen standaard HTTP / 2; dat betekent zeker dat het niet compatibel is of dat ze hun redenen hebben om dat niet te zijn. Waarom is deze oplossing vereist?

De methoden voor het installeren en inschakelen van HTTP / 2 die hieronder worden beschreven, zijn niet zozeer tijdelijke oplossingen, maar slechts louter pakketupdates en configuratiewijzigingen. Door de modulaire opzet van DirectAdmin zijn deze wijzigingen prima en zouden ze geen problemen of andere problemen mogen veroorzaken. Het is moeilijk vast te stellen waarom DirectAdmin dit niet standaard ondersteunt, aangezien de auteurs hiervoor geen uitleg hebben gegeven. Een redelijk solide conclusie is echter dat DirectAdmin gebruik maakt van de versiepakketten van het besturingssysteem. Deze zijn over het algemeen niet zo up-to-date als de onderstaande pakketten. Er is niets mis met HTTP / 2, de technologie zelf en de compatibiliteit ervan. Net als bij veel andere technologieën kan het even duren voordat het systeem zich automatisch heeft aangepast.

Wat zijn de mogelijke risico's van het activeren van HTTP / 2 met Apache?

Bij de activering van HTTP / 2 (bestaande uit een upgrade- en configuratieproces) zijn er veel variabelen die niet standaard kunnen blijken te zijn. Het grootste risico ligt echter in menselijke fouten. Maak van tevoren een momentopname, zorg ervoor dat u het onderhoud aankondigt aan uw gebruikers (als er andere op de server staan ​​dan uzelf) en wees voorzichtig. Kopieer en plak de opdrachten bovendien niet zonder na te denken over wat ze eerst doen.

Ik raad ten zeerste aan om tijdelijk een afzonderlijke Vultr-cloudinstantie met DirectAdmin op te starten en de stappen te doorlopen. Mocht er iets misgaan bij een 'nieuwe' installatie, dan weet u waar en hoe u het kunt debuggen, zodat u dat niet hoeft te doen in een productieomgeving.

Deel 1: Apache (webserver)

Als je momenteel gebruik maakt van een reverse proxy, moet je terugschakelen naar een Apache-only omgeving. Dat komt omdat HTTP / 2 erg moeilijk te debuggen is als er iets misgaat. Door gebruik te kunnen maken van de geïntegreerde HTTP / 2-functionaliteit van Apache, kunt u effectief een zeer groot deel van de problemen elimineren.

Stap 1: OpenSSL upgraden

In veel gevallen is uw OpenSSL-versie niet compatibel met ALPN, wat vereist is voor HTTP / 2. Laten we daarom ALPN inschakelen door OpenSSL bij te werken.

Laten we er eerst voor zorgen dat uw OpenSSL-versie niet compatibel is door het volgende uit te voeren:

openssl version

Als uw OpenSSL-versie kleiner is dan 1.1.0f, voer dan het volgende uit als root. Ga anders verder met stap 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

Stap 2: nghttp2 installeren

Om HTTP / 2 te laten werken, moeten we nghttp2 installeren. Nghttp2 is een implementatie van HTTP / 2 (en HPACK) in C. Nghttp2 is een gecombineerde versie van de HTTP / 2-client, server en proxy in C.

Voer de volgende opdrachten uit om nghttp2 te installeren. Gelukkig kan nghttp2 rechtstreeks vanuit CustomBuild worden gebouwd.

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

Stap 3: HTTP / 2 inschakelen in Apache

We moeten een paar waarden in het Apache-configuratiebestand wijzigen om gebruik te kunnen maken van HTTP / 2. Als de webserver geen instructies krijgt om een ​​alternatieve HTTP-versie te gebruiken, zal hij deze niet gebruiken. Daarom moeten we HTTP / 2 toevoegen aan het configuratiebestand.

Om deze wijzigingen door te voeren, is een herbouw van Apache via CustomBuild noodzakelijk. Aangezien de parameters en waarden die CustomBuild gebruikt bij het bouwen van software worden bepaald in een speciaal configuratiebestand, is het een goede gewoonte om deze wijzigingen in een speciaal aangepast configuratiebestand te plaatsen.

Opmerking: als u deze wijzigingen niet in een aangepast bestand plaatst, worden ze hoogstwaarschijnlijk overschreven en wordt uw installatie verbroken. Volg de onderstaande instructies.

Voer de volgende opdrachten uit om het bestand te maken en vul het in met de standaardwaarden, zodat we het later kunnen wijzigen:

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

Vanaf nu hebben we een aangepast bestand dat identiek is aan het standaard configuratiebestand voor Apache dat wordt gebruikt door CustomBuild. We moeten het /usr/local/directadmin/custombuild/custom/ap2/configure.apachebestand wijzigen door de volgende tekenreeks te vervangen:

"--with-ssl=/usr" \

met:

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

Opmerking: zorg ervoor dat er geen witruimte is na een van de backslashes . Als er te veel witruimte is, zal de build breken.

Bouw vervolgens Apache opnieuw op. CustomBuild gebruikt het aangepaste configuratiebestand dat u zojuist hebt gemaakt:

./build apache

Stap 4: De Apache-configuratie wijzigen

Apache is nu opnieuw opgebouwd inclusief de nodige modules en instellingen voor HTTP / 2. Dat betekent dat we nu een Apache-versie op onze server hebben geïnstalleerd met ondersteuning voor HTTP / 2, maar we moeten Apache vertellen om het eerst te gebruiken.

Voeg de volgende regels toe in /etc/httpd/conf/extra/httpd-includes.conf:

ProtocolsHonorOrder On
Protocols h2 h2c http/1.1

Sla deze wijzigingen op en herschrijf de configuratiebestanden zodat ze blijven bestaan ​​tijdens het opnieuw opbouwen:

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

HTTP / 2 zou nu actief moeten zijn op uw web (Apache) -server.

Stap 5: Start de server opnieuw op

Start de server opnieuw op om ervoor te zorgen dat onze wijzigingen blijven bestaan ​​tijdens het opnieuw opstarten. Start de server opnieuw op via het Vultr-configuratiescherm of door de rebootopdracht uit te voeren.

Stap 6: Test HTTP / 2

De functionaliteit van HTTP / 2 kan eenvoudig worden getest met behulp van de volgende tool: HTTP / 2-test

Aangezien HTTP / 2 serverspecifiek is en niet kan worden beperkt tot een specifiek paar domeinen of websites, zou het invoeren van een domeinnaam die naar de server verwijst of zelfs het IP-adres van de server zou moeten werken.

De test zal u vertellen of het de webserver kan bereiken via HTTP / 2. Als de tool zegt dat HTTP / 2 op uw server is geactiveerd, kunnen DirectAdmin-websites nu worden bereikt via HTTP / 1.1 of HTTP / 2. In het geval dat HTTP / 2-ondersteuning niet beschikbaar is voor de klant (bezoeker), zal zijn browser terugvallen op HTTP / 1.1.

Als de tool uw webserver niet via HTTP / 2 kan bereiken, volgt u de bovenstaande stappen opnieuw. Over het algemeen (aangezien de bovenstaande stappen niets actief overschrijven), zal dit uw setup niet beschadigen of breken.

Deel 2: krul

Ik raad aan om cURL bij te werken zodat het servers met HTTP / 2-ondersteuning kan bereiken. Als een server HTTP / 2 niet ondersteunt, valt deze terug naar HTTP / 1.1.

Stap 1: het aangepaste configuratiebestand toevoegen

Net als bij Apache, zullen we een aangepast configuratiebestand maken, zodat cURL gebouwd door CustomBuild onze aangepaste instellingen zal gebruiken.

Maak de directory:

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

Maak het bestand aan:

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

Kopieer en plak de volgende inhoud in het bestand:

#!/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

Zoals je kunt zien, vertelt deze inhoud cURL om te worden gecompileerd met behulp van de lib_http2SSL-bibliotheek.

Sla het bestand op en geef het de juiste rechten:

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

Stap 2: CURL bouwen

Vervolgens hoeven we alleen maar cURL te bouwen.

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

cURL is nu samengesteld met HTTP 2-ondersteuning.



Leave a Comment

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.