Hur man aktiverar HTTP/2-stöd på DirectAdmin (CentOS)

HTTP/2 är den senaste versionen av HTTP-protokollet, baserat på SPDY. Dess utveckling initierades av Google och HTTP/2 är till stor del baserad på kodbasen och koncepten från SPDY.

SPDY har nu fasats ut och en världsomspännande användning av HTTP/2 pågår. Många värdföretag har redan gett stöd för HTTP/2 på grund av dess ökade hastighet.

I skrivande stund tillhandahåller DirectAdmin inget sätt att aktivera HTTP/2 med ett klick. Det finns dock flera sätt att uppnå HTTP/2-stöd. Metoden som beskrivs nedan har visat sig vara den mest robusta och stabila metoden.

Flera komponenter måste uppdateras för att HTTP/2 ska träda i kraft. På grund av detta rekommenderar jag starkt att du tar en ögonblicksbild. Om möjligt, följ den här guiden på en helt ny server.

Den här guiden består av två delar: aktivera HTTP/2-stöd i webbservern (Apache) för klienter (besökare) och aktivering av HTTP/2 i cURL. Aktivering av HTTP v2 för cURL tvingar cURL-begäranden som kommer från din server att använda HTTP/2 för dess destinationsservrar, om möjligt.

Nyckelord

  • Det är inte nödvändigt att uppdatera både Apache och cURL för att använda HTTP/2. Det är bra om du följer någon av guiderna, eftersom de fungerar separat från varandra.
  • Det har förekommit några konstiga fall där Apache och HTTP/2 verkar fungera bra, men laddningen lyckas på ''slumpmässiga'' webbläsare och webbplatser blir oåtkomliga (timeout) på andra. Att helt enkelt återgå till den ursprungliga Apache-konfigurationen kommer att fixa detta, eftersom Apache inte kommer att känna till HTTP/2 och inte försöka visa innehåll över det.
  • Ta alltid en säkerhetskopia eller gör en ögonblicksbild i förväg. Att aktivera HTTP/2 kan vara en relativt ömtålig process så det är viktigt att kunna återställa ändringar om det behövs.
  • Omkompilering av programvara kan alltid orsaka ett litet driftstopp. I vissa fall är detta under en minut, men det finns inget sätt att säga exakt. Du bör åtminstone vara beredd på lite driftstopp.
  • Du behöver root-åtkomst till servern för den här guiden. Om du inte har möjlighet att höja din behörighetsnivå till root, bör du kontakta serveradministratören för att aktivera HTTP/2 på servern.

HTTP/2 och SSL

Även om det inte är ett tekniskt krav från själva HTTP/2, behöver du i de flesta fall ett SSL-certifikat för att kunna använda HTTP/2. HTTP/2 kräver som sagt inte detta tekniskt, men många webbläsare (Safari, Chrome, Firefox, etc.) har skapat denna standard. Innehåll kommer inte att visas över HTTP/2 när en sida laddas utan SSL med dessa webbläsare. Med tanke på att de flesta användare använder dessa webbläsare (och andra) som också deltar i denna standard, bör du använda ett SSL-certifikat.

Om du letar efter ett gratis SSL-certifikat bör du ta en titt på en av våra Let's Encrypt-guider:

Rekommenderas: Installera Let's Encrypt på DirectAdmin

Alternativa kontrollpaneler:

Allmänna guider:

FAQ

Dokumenterar den här guiden installationen av Brotli?

Nej, det finns ingen metod som beskrivs för att installera Brotli tillsammans med HTTP/2 i den här artikeln.

Att kompilera misslyckas utan anledning, och jag har följt de exakta stegen som beskrivs i den här artikeln. Hur löser jag detta?

Även om det finns många möjliga orsaker till detta, med hänsyn till olika miljöer och liknande, kanske dina lokalinställningar inte är korrekta. Försök att sätta LC_ALL=Cframför dina kommandon, så att kommandot för att kompilera om Apache skulle se ut så här till exempel: LC_ALL=C ./build apache Glöm inte utrymmet mellan LC_ALL=Coch kommandot!

Kommer jag att förlora någon data?

Om du för närvarande använder en omvänd proxy-inställning, till exempel med Apache och Nginx, bör du återställa den till Apache, i vilket fall du verkligen skulle förlora dina Nginx-konfigurationsfiler. Om du har gjort anpassade VirtualHost-konfigurationer (vare sig det är genom kommandoraden eller DirectAdmin själv) bör du ändra dessa per domän så att Apache-versionerna förblir aktiva. Du kommer inte att förlora någon data när det gäller användardata, webbplatsinnehåll, databaser etc.

Kommer dessa anpassade versioner att hindra mig från att uppdatera paket och programvara i framtiden?

Generellt sett finns det ingen anledning att oroa sig för detta. Med hänsyn till DirectAdmins modulära uppsättning (och därmed CustomBuilds) bör du kunna nedgradera eller uppgradera till andra mjukvaruversioner i framtiden utan problem. Även om du bör dokumentera ändringarna om en alternativ uppgraderingsväg krävs i framtiden, bör du inte behöva oroa dig för inkompatibilitetsversioner med nya programvaruversioner.

DirectAdmin erbjuder inte HTTP/2 direkt; det betyder säkert att det inte är kompatibelt eller att de har sina skäl att inte vara det. Varför krävs denna lösning?

Metoderna för att installera och aktivera HTTP/2 som beskrivs nedan är inte så mycket lösningar, utan bara paketuppdateringar och konfigurationsändringar. På grund av DirectAdmins modulära inställning är dessa ändringar helt ok och bör inte orsaka problem eller andra problem. Det är svårt att avgöra varför DirectAdmin inte stöder detta direkt, med tanke på att författarna inte har gett en förklaring till detta. En ganska solid slutsats är dock att DirectAdmin använder versionspaketen av operativsystemet. Dessa är i allmänhet inte lika uppdaterade som paketen nedan. Det är inget fel med HTTP/2, själva tekniken och dess kompatibilitet. Precis som många andra tekniker kan det ta lite tid att anpassa sig.

Vilka är de möjliga riskerna med att aktivera HTTP/2 med Apache?

I aktiveringen av HTTP/2 (som består av en uppgraderings- och konfigurationsprocess) finns det många variabler som kan visa sig vara icke-standardiserade. Den största risken ligger dock i mänskliga fel. Ta en ögonblicksbild i förväg, se till att meddela underhållet för dina användare (om det finns några på servern förutom dig själv) och var försiktig. Dessutom, kopiera och klistra inte in kommandona utan att tänka på vad de gör först.

Jag rekommenderar starkt att tillfälligt snurra upp en separat Vultr-molninstans med DirectAdmin och gå igenom stegen. Skulle något gå fel på en "ny" installation vet du var och hur du ska felsöka den så att du inte behöver göra det i en produktionsmiljö.

Del 1: Apache (webbserver)

Om du för närvarande använder en omvänd proxy, bör du byta tillbaka till en miljö som endast är för Apache. Det beror på att HTTP/2 är väldigt svårt att felsöka om något går fel. Genom att kunna använda Apaches integrerade HTTP/2-funktionalitet kan du effektivt eliminera en mycket stor del av problem.

Steg 1: Uppgradera OpenSSL

I många fall är din OpenSSL-version inte kompatibel med ALPN, vilket krävs för HTTP/2. Låt oss därför aktivera ALPN genom att uppdatera OpenSSL.

Först och främst, låt oss se till att din OpenSSL-version inte är kompatibel genom att köra:

openssl version

Om din OpenSSL-version är mindre än 1.1.0f, kör följande som root. Gå annars till steg 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

Steg 2: Installera nghttp2

För att HTTP/2 ska fungera måste vi installera nghttp2. Nghttp2 är en implementering av HTTP/2 (och HPACK) i C. Nghttp2 är en kombinerad version av HTTP/2-klienten, servern och proxyn i C.

För att installera nghttp2, kör följande kommandon. Lyckligtvis kan nghttp2 byggas direkt från CustomBuild.

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

Steg 3: Aktivera HTTP/2 i Apache

Vi måste ändra några värden i Apache-konfigurationsfilen för att den ska kunna använda HTTP/2. När webbservern inte får instruktioner för att använda en alternativ HTTP-version kommer den inte att använda den. Därför måste vi lägga till HTTP/2 i konfigurationsfilen.

För att dessa ändringar ska träda i kraft krävs en ombyggnad av Apache genom CustomBuild. Eftersom parametrarna och värdena som används av CustomBuild när man bygger programvara fastställs i en dedikerad konfigurationsfil, är bästa praxis att lägga dessa ändringar i en dedikerad anpassad konfigurationsfil.

Obs: om du inte lägger dessa ändringar i en anpassad fil kommer de troligen att skrivas över och din installation kommer att gå sönder. Följ instruktionerna nedan.

Utför följande kommandon för att skapa filen och förfyll den med standardvärdena så att vi kan ändra den efteråt:

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

Från och med nu har vi en anpassad fil som är identisk med standardkonfigurationsfilen för Apache som används av CustomBuild. Vi måste ändra /usr/local/directadmin/custombuild/custom/ap2/configure.apachefilen genom att ersätta följande sträng:

"--with-ssl=/usr" \

med:

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

Obs: Se till att det inte finns något vitt utrymme efter något av snedstrecket . För mycket blanksteg där kommer att göra att byggnaden går sönder.

Bygg sedan om Apache. CustomBuild kommer att använda den anpassade konfigurationsfilen du just har skapat:

./build apache

Steg 4: Ändra Apache-konfigurationen

Apache har nu byggts om inklusive nödvändiga moduler och inställningar för HTTP/2. Det betyder att vi nu har en Apache-version installerad på vår server med stöd för HTTP/2, men vi måste säga åt Apache att faktiskt använda den först.

Lägg till följande rader i /etc/httpd/conf/extra/httpd-includes.conf:

ProtocolsHonorOrder On
Protocols h2 h2c http/1.1

Spara dessa ändringar och skriv om konfigurationsfilerna så att de är beständiga över ombyggnader:

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

HTTP/2 bör nu vara aktiv på din webbserver (Apache).

Steg 5: Starta om servern

Starta om servern för att se till att våra ändringar kvarstår vid omstarter. Vänligen starta om servern via Vultr kontrollpanelen eller genom att utföra rebootkommandot.

Steg 6: Testa HTTP/2

HTTP/2:s funktionalitet kan enkelt testas med hjälp av följande verktyg: HTTP/2 Test

Med tanke på att HTTP/2 är serverspecifik och inte kan begränsas till ett specifikt par domäner eller webbplatser, bör ange ett domännamn som pekar på servern eller till och med serverns IP-adress fungera.

Testet kommer att berätta om det kan nå webbservern via HTTP/2. Om verktyget säger att HTTP/2 är aktiverat på din server, kan DirectAdmin-webbplatser nu nås via antingen HTTP/1.1 eller HTTP/2. Om HTTP/2-stöd inte är tillgängligt för klienten (besökaren) kommer dess webbläsare att falla tillbaka till HTTP/1.1.

Om verktyget inte kan nå din webbserver via HTTP/2, följ stegen ovan igen. I allmänhet (eftersom stegen ovan inte aktivt skriver över någonting) kommer detta inte att skada eller bryta din installation.

Del 2: curl

Jag rekommenderar att du uppdaterar cURL så att den kan nå servrar med HTTP/2-stöd. Om en server inte stöder HTTP/2 kommer den att falla tillbaka till HTTP/1.1.

Steg 1: Lägga till den anpassade konfigurationsfilen

Precis som med Apache kommer vi att skapa en anpassad konfigurationsfil så att cURL byggd av CustomBuild kommer att använda våra anpassade inställningar.

Skapa katalogen:

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

Skapa filen:

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

Kopiera och klistra in följande innehåll i filen:

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

Som du kan se säger detta innehåll att cURL ska kompileras med hjälp av lib_http2SSL-biblioteket.

Spara filen och ge den rätt behörigheter:

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

Steg 2: Bygg cURL

Därefter är allt vi behöver göra att bygga cURL.

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

cURL har nu kompilerats med HTTP 2-stöd.


Installera Plesk på CentOS 7

Installera Plesk på CentOS 7

Använder du ett annat system? Plesk är en egen kontrollpanel för webbhotell som tillåter användare att administrera sina personliga och/eller klienters webbplatser, databaser

Hur man installerar Squid Proxy på CentOS

Hur man installerar Squid Proxy på CentOS

Squid är ett populärt, gratis Linux-program som låter dig skapa en webbproxy för vidarebefordran. I den här guiden ser du hur du installerar Squid på CentOS för att förvandla dig

Hur man installerar Lighttpd (LLMP Stack) på CentOS 6

Hur man installerar Lighttpd (LLMP Stack) på CentOS 6

Inledning Lighttpd är en apachegaffel som syftar till att vara mycket mindre resurskrävande. Den är lätt, därav namnet, och är ganska enkel att använda. Installera

Konfigurera statiskt nätverk och IPv6 på CentOS 7

Konfigurera statiskt nätverk och IPv6 på CentOS 7

VULTR har nyligen gjort ändringar på deras sida, och allt borde nu fungera bra direkt när NetworkManager är aktiverat. Om du vill inaktivera

Ändra Icinga2 för att använda Master/Client Model på CentOS 6 eller CentOS 7

Ändra Icinga2 för att använda Master/Client Model på CentOS 6 eller CentOS 7

Icinga2 är ett kraftfullt övervakningssystem, och när det används i en master-klient-modell kan det ersätta behovet av NRPE-baserade övervakningskontroller. Master-klienten

Hur man installerar Apache Cassandra 3.11.x på CentOS 7

Hur man installerar Apache Cassandra 3.11.x på CentOS 7

Använder du ett annat system? Apache Cassandra är ett gratis NoSQL-databashanteringssystem med öppen källkod som är designat för att ge skalbarhet, hög

Hur man installerar Microweber på CentOS 7

Hur man installerar Microweber på CentOS 7

Använder du ett annat system? Microweber är en öppen källkod för dra och släpp CMS och onlinebutik. Microweber källkod finns på GitHub. Denna guide kommer att visa dig

Hur man installerar Vanilla Forum på CentOS 7

Hur man installerar Vanilla Forum på CentOS 7

Använder du ett annat system? Vanilla forum är en open source forumapplikation skriven i PHP. Det är en helt anpassningsbar, enkel att använda och stöder externa

Hur man installerar Mattermost 4.1 på CentOS 7

Hur man installerar Mattermost 4.1 på CentOS 7

Använder du ett annat system? Mattermost är ett alternativ med öppen källkod, självvärd till meddelandetjänsten Slack SAAS. Med andra ord, med Mattermost, du ca

Skapa ett nätverk av Minecraft-servrar med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Skapa ett nätverk av Minecraft-servrar med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Vad du behöver En Vultr VPS med minst 1 GB RAM. SSH-åtkomst (med root-/administrativa privilegier). Steg 1: Installera BungeeCord Först till kvarn

Låt oss kryptera på Plesk

Låt oss kryptera på Plesk

Plesks kontrollpanel har en mycket trevlig integration för Lets Encrypt. Lets Encrypt är en av de enda SSL-leverantörerna som ger ut certifikat fullständigt

Låter kryptera på cPanel

Låter kryptera på cPanel

Lets Encrypt är en certifikatmyndighet dedikerad till att tillhandahålla SSL-certifikat gratis. cPanel har byggt en snygg integration så att du och din klient

Hur man installerar Concrete5 på CentOS 7

Hur man installerar Concrete5 på CentOS 7

Använder du ett annat system? Concrete5 är ett CMS med öppen källkod som erbjuder många distinkta och användbara funktioner för att hjälpa redaktörer att producera innehåll enkelt och

Hur man installerar Review Board på CentOS 7

Hur man installerar Review Board på CentOS 7

Använder du ett annat system? Review Board är ett gratis och öppen källkodsverktyg för att granska källkod, dokumentation, bilder och många fler. Det är webbaserad mjukvara

Ställ in HTTP-autentisering med Nginx på CentOS 7

Ställ in HTTP-autentisering med Nginx på CentOS 7

I den här guiden lär du dig hur du ställer in HTTP-autentisering för en Nginx-webbserver som körs på CentOS 7. Krav För att komma igång behöver du

Hur man installerar YOURLS på CentOS 7

Hur man installerar YOURLS på CentOS 7

YOURLS (Your Own URL Shortener) är ett webbadressförkortnings- och dataanalysprogram med öppen källkod. I den här artikeln kommer vi att täcka installationsprocessen

Hur man installerar och konfigurerar ArangoDB på CentOS 7

Hur man installerar och konfigurerar ArangoDB på CentOS 7

Använder du ett annat system? Inledning ArangoDB är en NoSQL-databas med öppen källkod med en flexibel datamodell för dokument, grafer och nyckel-värden. Det är

Använda Etckeeper för versionskontroll av /etc

Använda Etckeeper för versionskontroll av /etc

Inledning Katalogen /etc/ spelar en avgörande roll för hur ett Linux-system fungerar. Anledningen till detta är att nästan varje systemkonfiguration

Varför ska du använda SSHFS? Hur man monterar ett fjärrfilsystem med SSHFS på CentOS 6

Varför ska du använda SSHFS? Hur man monterar ett fjärrfilsystem med SSHFS på CentOS 6

Många systemadministratörer hanterar stora mängder servrar. När filer behöver nås över olika servrar, logga in på var och en individuellt ca

Konfigurera en Half Life 2-server på CentOS 6

Konfigurera en Half Life 2-server på CentOS 6

Denna handledning kommer att täcka processen att installera en Half Life 2-spelserver på CentOS 6 System. Steg 1: Installera förutsättningarna För att ställa in ou

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.

DDOS-attacker: En kort översikt

DDOS-attacker: En kort översikt

Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.

Har du någonsin undrat hur hackare tjänar pengar?

Har du någonsin undrat hur hackare tjänar pengar?

Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...

Technological Singularity: A Distant Future of Human Civilization?

Technological Singularity: A Distant Future of Human Civilization?

När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.

Utveckling av datalagring – Infographic

Utveckling av datalagring – Infographic

Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.

Funktioner för Big Data Reference Architecture Layers

Funktioner för Big Data Reference Architecture Layers

Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer