Slik aktiverer du HTTP/2-støtte på DirectAdmin (CentOS)

HTTP/2 er den nyeste versjonen av HTTP-protokollen, basert på SPDY. Utviklingen ble initiert av Google og HTTP/2 er i stor grad basert på kodebasen og konseptene til SPDY.

SPDY har nå blitt avviklet og verdensomspennende bruk for HTTP/2 pågår. Mange vertsselskaper har allerede gitt støtte for HTTP/2 på grunn av dens ekstra hastighet.

I skrivende stund tilbyr ikke DirectAdmin en ett-klikks måte å aktivere HTTP/2 på. Det er imidlertid flere måter å oppnå HTTP/2-støtte på. Metoden skissert nedenfor har vist seg å være den mest robuste og stabile tilnærmingen.

Flere komponenter må oppdateres for at HTTP/2 skal tre i kraft. På grunn av dette anbefaler jeg deg på det sterkeste å ta et øyeblikksbilde. Hvis mulig, følg denne veiledningen på en helt ny server.

Denne veiledningen består av to deler: aktivering av HTTP/2-støtte i webserveren (Apache) for klienter (besøkende) og aktivering av HTTP/2 i cURL. Aktivering av HTTP v2 for cURL tvinger cURL-forespørsler som kommer fra serveren din til å bruke HTTP/2 for destinasjonstjenerne, hvis mulig.

Viktige punkter

  • Det er ikke nødvendig å oppdatere både Apache og cURL for å bruke HTTP/2. Det er greit hvis du følger noen av veiledningene, da de fungerer separat fra hverandre.
  • Det har vært noen merkelige tilfeller der Apache og HTTP/2 ser ut til å fungere bra, men lasting lykkes på ''tilfeldige'' nettlesere og nettsteder blir utilgjengelige (timeout) på andre. Bare å gå tilbake til den opprinnelige Apache-konfigurasjonen vil fikse dette, siden Apache ikke vil vite om HTTP/2 og ikke forsøke å vise innhold over det.
  • Ta alltid en sikkerhetskopi eller ta et øyeblikksbilde på forhånd. Å aktivere HTTP/2 kan være en relativt skjør prosess, så det er viktig å kunne tilbakestille endringer om nødvendig.
  • Rekompilering av programvare kan alltid føre til liten nedetid. I noen tilfeller er dette under ett minutt, men det er ingen måte å si nøyaktig. Du bør i det minste være forberedt på litt nedetid.
  • Du trenger root-tilgang til serveren for denne veiledningen. Hvis du ikke har muligheten til å heve tillatelsesnivået til root, bør du kontakte serveradministratoren for å aktivere HTTP/2 på serveren.

HTTP/2 og SSL

Selv om det ikke er et teknisk krav fra HTTP/2 i seg selv, vil du i de fleste tilfeller trenge et SSL-sertifikat for å bruke HTTP/2. HTTP/2 krever som nevnt ikke dette teknisk, men mange nettlesere (Safari, Chrome, Firefox osv.) har laget denne standarden. Innhold vil ikke bli servert over HTTP/2 når en side lastes inn uten SSL ved bruk av disse nettleserne. Med tanke på at de fleste brukere bruker disse nettleserne (og andre) som også deltar i denne standarden, bør du bruke et SSL-sertifikat.

Hvis du leter etter et gratis SSL-sertifikat, bør du ta en titt på en av våre Let's Encrypt-guider:

Anbefalt: Installere Let's Encrypt på DirectAdmin

Alternative kontrollpaneler:

Generelle veiledninger:

FAQ

Dokumenterer denne veiledningen installasjonen av Brotli?

Nei, det er ingen metode skissert for å installere Brotli sammen med HTTP/2 i denne artikkelen.

Kompilering mislykkes uten grunn, og jeg har fulgt de nøyaktige trinnene som er beskrevet i denne artikkelen. Hvordan løser jeg dette?

Selv om det er mange mulige årsaker til dette, med tanke på ulike miljøer og lignende, er det muligens at lokalinnstillingene dine ikke er korrekte. Prøv å sette LC_ALL=Cforan kommandoene dine, så kommandoen for å rekompilere Apache vil for eksempel se slik ut: LC_ALL=C ./build apache Ikke glem mellomrommet mellom LC_ALL=Cog kommandoen!

Vil jeg miste noen data?

I tilfelle du for øyeblikket bruker et omvendt proxy-oppsett, for eksempel med Apache og Nginx, bør du gå tilbake til Apache, i så fall vil du faktisk miste Nginx-konfigurasjonsfilene dine. I tilfelle du har laget tilpassede VirtualHost-konfigurasjoner (det være seg gjennom kommandolinjen eller DirectAdmin selv) bør du endre disse på per domene-basis slik at Apache-versjonene forblir aktive. Du vil ikke miste noen data med hensyn til brukerdata, nettstedinnhold, databaser osv.

Vil disse tilpassede versjonene stoppe meg fra å oppdatere pakker og programvare i fremtiden?

Generelt er det ingen grunn til å bekymre seg for dette. Med tanke på DirectAdmins modulære oppsett (og dermed CustomBuilds) bør du kunne nedgradere eller oppgradere til andre programvareversjoner i fremtiden uten problemer. Selv om du bør dokumentere endringene i tilfelle en alternativ oppgraderingsbane er nødvendig i fremtiden, bør det ikke være noen grunn til å bekymre deg for inkompatibilitetsversjoner med nye programvareutgivelser.

DirectAdmin tilbyr ikke HTTP/2 ut av boksen; det betyr sikkert at det ikke er kompatibelt, eller at de har sine grunner til å ikke være det. Hvorfor er denne løsningen nødvendig?

Metodene for å installere og aktivere HTTP/2 beskrevet nedenfor er ikke så mye løsninger, men bare pakkeoppdateringer og konfigurasjonsendringer. På grunn av DirectAdmins modulære oppsett er disse endringene helt i orden og bør ikke forårsake problemer eller andre problemer. Det er vanskelig å avgjøre hvorfor DirectAdmin ikke støtter dette ut av boksen, gitt at forfatterne ikke har gitt en forklaring på dette. En ganske solid konklusjon er imidlertid at DirectAdmin bruker versjonspakkene til operativsystemet. Disse er generelt ikke like oppdaterte som pakkene nedenfor. Det er ingenting galt med HTTP/2, selve teknologien og dens kompatibilitet. Akkurat som mange andre teknologier kan det ta litt tid å tilpasse seg.

Hva er de mulige risikoene ved å aktivere HTTP/2 med Apache?

I aktiveringen av HTTP/2 (bestående av en oppgraderings- og konfigurasjonsprosess) er det mange variabler som kan vise seg å være ikke-standardiserte. Den største risikoen ligger imidlertid i menneskelige feil. Ta et øyeblikksbilde på forhånd, sørg for å kunngjøre vedlikeholdet til brukerne dine (hvis det er noen på serveren bortsett fra deg selv) og vær forsiktig. Videre, ikke kopier og lim inn kommandoene uten å tenke på hva de gjør først.

Jeg anbefaler på det sterkeste å midlertidig spinne opp en egen Vultr-skyforekomst med DirectAdmin og gå gjennom trinnene. Skulle noe gå galt på en "fersk" installasjon, vet du hvor og hvordan du skal feilsøke den slik at du ikke trenger det i et produksjonsmiljø.

Del 1: Apache (webserver)

Hvis du for øyeblikket bruker en omvendt proxy, bør du bytte tilbake til et kun Apache-miljø. Det er fordi HTTP/2 er veldig vanskelig å feilsøke hvis noe går galt. Ved å kunne benytte deg av Apaches integrerte HTTP/2-funksjonalitet, er du effektivt i stand til å eliminere en svært stor del av trøbbel.

Trinn 1: Oppgradering av OpenSSL

I mange tilfeller er din OpenSSL-versjon ikke kompatibel med ALPN, som kreves for HTTP/2. La oss derfor aktivere ALPN ved å oppdatere OpenSSL.

Først av alt, la oss sørge for at OpenSSL-versjonen din ikke er kompatibel ved å utføre:

openssl version

Hvis din OpenSSL-versjon er mindre enn 1.1.0f, kjør følgende som root. Ellers går du til trinn 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

Trinn 2: Installere nghttp2

For at HTTP/2 skal fungere, må vi installere nghttp2. Nghttp2 er en implementering av HTTP/2 (og HPACK) i C. Nghttp2 er en kombinert versjon av HTTP/2-klienten, serveren og proxyen i C.

For å installere nghttp2, kjør følgende kommandoer. Heldigvis kan nghttp2 bygges rett fra CustomBuild.

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

Trinn 3: Aktivering av HTTP/2 i Apache

Vi må endre noen få verdier i Apache-konfigurasjonsfilen for at den skal kunne bruke HTTP/2. Når webserveren ikke får instruksjoner om å bruke en alternativ HTTP-versjon, vil den ikke bruke den. Derfor må vi legge til HTTP/2 i konfigurasjonsfilen.

For at disse endringene skal tre i kraft, er en gjenoppbygging av Apache gjennom CustomBuild nødvendig. Siden parametrene og verdiene som brukes av CustomBuild ved bygging av programvare, bestemmes i en dedikert konfigurasjonsfil, er beste praksis å legge disse endringene i en dedikert tilpasset konfigurasjonsfil.

Merk: Hvis du ikke legger disse endringene i en egendefinert fil, vil de mest sannsynlig bli overskrevet og oppsettet ditt vil gå i stykker. Følg instruksjonene nedenfor.

Utfør følgende kommandoer for å lage filen og forhåndsfyll den med standardverdiene slik at vi kan endre den etterpå:

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

Per nå har vi en tilpasset fil som er identisk med standard konfigurasjonsfilen for Apache brukt av CustomBuild. Vi må endre /usr/local/directadmin/custombuild/custom/ap2/configure.apachefilen ved å erstatte følgende streng:

"--with-ssl=/usr" \

med:

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

Merk: Pass på at det ikke er noe hvitt mellomrom etter noen av skråstrekene . Overflødig mellomrom der vil føre til at bygget bryter.

Deretter gjenoppbygger du Apache. CustomBuild vil bruke den tilpassede konfigurasjonsfilen du nettopp har opprettet:

./build apache

Trinn 4: Endre Apache-konfigurasjonen

Apache er nå gjenoppbygd inkludert nødvendige moduler og innstillinger for HTTP/2. Det betyr at vi nå har en Apache-versjon installert på serveren vår med støtte for HTTP/2, men vi må fortelle Apache om å faktisk bruke den først.

Legg til følgende linjer i /etc/httpd/conf/extra/httpd-includes.conf:

ProtocolsHonorOrder On
Protocols h2 h2c http/1.1

Lagre disse endringene og omskriv konfigurasjonsfilene slik at de er vedvarende på tvers av gjenoppbygginger:

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

HTTP/2 skal nå være aktiv på webserveren (Apache).

Trinn 5: Start serveren på nytt

Start serveren på nytt for å sikre at endringene våre vedvarer ved omstart. Start serveren på nytt via Vultr-kontrollpanelet eller ved å utføre rebootkommandoen.

Trinn 6: Test HTTP/2

HTTP/2s funksjonalitet kan enkelt testes ved å bruke følgende verktøy: HTTP/2 Test

Tatt i betraktning at HTTP/2 er serverspesifikk og ikke kan begrenses til et spesifikt par domener eller nettsteder, bør inntasting av et domenenavn som peker til serveren eller til og med serverens IP-adresse fungere.

Testen vil fortelle deg om den er i stand til å nå webserveren via HTTP/2. I tilfelle verktøyet sier at HTTP/2 er aktivert på serveren din, kan DirectAdmin-nettsteder nå nås via enten HTTP/1.1 eller HTTP/2. I tilfelle HTTP/2-støtte ikke er tilgjengelig for klienten (besøkende) vil nettleseren falle tilbake til HTTP/1.1.

Hvis verktøyet ikke kan nå webserveren din via HTTP/2, følg trinnene ovenfor på nytt. Generelt (ettersom trinnene ovenfor ikke aktivt overskriver noe) vil ikke dette skade eller ødelegge oppsettet ditt.

Del 2: curl

Jeg anbefaler å oppdatere cURL slik at den er i stand til å nå servere med HTTP/2-støtte. I tilfelle en server ikke støtter HTTP/2, vil den falle tilbake til HTTP/1.1.

Trinn 1: Legge til den tilpassede konfigurasjonsfilen

Akkurat som med Apache, vil vi lage en egendefinert konfigurasjonsfil slik at cURL bygget av CustomBuild vil bruke våre egendefinerte innstillinger.

Lag katalogen:

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

Lag filen:

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

Kopier og lim inn følgende innhold til 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, forteller dette innholdet at cURL skal kompileres ved hjelp av lib_http2SSL-biblioteket.

Lagre filen og gi den de riktige tillatelsene:

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

Trinn 2: Bygg cURL

Deretter er alt vi trenger å gjøre å bygge cURL.

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

cURL er nå kompilert med HTTP 2-støtte.


Installer Plesk på CentOS 7

Installer Plesk på CentOS 7

Bruker du et annet system? Plesk er et proprietært kontrollpanel for webverten som lar brukere administrere sine personlige og/eller klienters nettsteder, databaser

Slik installerer du Squid Proxy på CentOS

Slik installerer du Squid Proxy på CentOS

Squid er et populært, gratis Linux-program som lar deg lage en webproxy for videresending. I denne veiledningen vil du se hvordan du installerer Squid på CentOS for å gjøre deg om

Slik installerer du Lighttpd (LLMP Stack) på CentOS 6

Slik installerer du Lighttpd (LLMP Stack) på CentOS 6

Introduksjon Lighttpd er en apachegaffel som har som mål å være mye mindre ressurskrevende. Den er lett, derav navnet, og er ganske enkel å bruke. Installer

Konfigurering av statisk nettverk og IPv6 på CentOS 7

Konfigurering av statisk nettverk og IPv6 på CentOS 7

VULTR har nylig gjort endringer på sin side, og alt skal nå fungere bra ut av boksen med NetworkManager aktivert. Skulle du ønske å deaktivere

Endring av Icinga2 for å bruke hoved-/klientmodell på CentOS 6 eller CentOS 7

Endring av Icinga2 for å bruke hoved-/klientmodell på CentOS 6 eller CentOS 7

Icinga2 er et kraftig overvåkingssystem, og når det brukes i en master-klient-modell, kan det erstatte behovet for NRPE-baserte overvåkingskontroller. Mester-klienten

Slik installerer du Apache Cassandra 3.11.x på CentOS 7

Slik installerer du Apache Cassandra 3.11.x på CentOS 7

Bruker du et annet system? Apache Cassandra er et gratis og åpen kildekode NoSQL-databasebehandlingssystem som er designet for å gi skalerbarhet, høy

Slik installerer du Microweber på CentOS 7

Slik installerer du Microweber på CentOS 7

Bruker du et annet system? Microweber er en åpen kildekode dra og slipp CMS og nettbutikk. Microweber-kildekoden er vert på GitHub. Denne guiden vil vise deg

Hvordan installere Vanilla Forum på CentOS 7

Hvordan installere Vanilla Forum på CentOS 7

Bruker du et annet system? Vanilla forum er en åpen kildekode-forumapplikasjon skrevet i PHP. Det er en fullt tilpassbar, enkel å bruke og støtter ekstern

Slik installerer du Mattermost 4.1 på CentOS 7

Slik installerer du Mattermost 4.1 på CentOS 7

Bruker du et annet system? Mattermost er et åpen kildekode, selvdrevet alternativ til Slack SAAS-meldingstjenesten. Med andre ord, med Mattermost kan du ca

Opprette et nettverk av Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Opprette et nettverk av Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Hva du trenger En Vultr VPS med minst 1 GB RAM. SSH-tilgang (med root/administratorrettigheter). Trinn 1: Installere BungeeCord Først

La oss kryptere på Plesk

La oss kryptere på Plesk

Plesk-kontrollpanelet har en veldig fin integrasjon for Lets Encrypt. Lets Encrypt er en av de eneste SSL-leverandørene som gir ut sertifikater komplett

La oss kryptere på cPanel

La oss kryptere på cPanel

Lets Encrypt er en sertifiseringsinstans dedikert til å tilby SSL-sertifikater gratis. cPanel har bygget en ryddig integrasjon slik at du og din klient

Hvordan installere Concrete5 på CentOS 7

Hvordan installere Concrete5 på CentOS 7

Bruker du et annet system? Concrete5 er et åpen kildekode CMS som tilbyr mange karakteristiske og nyttige funksjoner for å hjelpe redaktører med å produsere innhold enkelt og

Slik installerer du Review Board på CentOS 7

Slik installerer du Review Board på CentOS 7

Bruker du et annet system? Review Board er et gratis og åpen kildekodeverktøy for gjennomgang av kildekode, dokumentasjon, bilder og mye mer. Det er nettbasert programvare

Sett opp HTTP-autentisering med Nginx på CentOS 7

Sett opp HTTP-autentisering med Nginx på CentOS 7

I denne veiledningen lærer du hvordan du setter opp HTTP-autentisering for en Nginx-webserver som kjører på CentOS 7. Krav For å komme i gang trenger du

Slik installerer du GoAccess på CentOS 7

Slik installerer du GoAccess på CentOS 7

Bruker du et annet system? GoAccess er en åpen kildekode-nettlogganalysator. Du kan bruke den til analyse av logger på sanntidsbasis i enten terminalen eller

Hvordan installere YOURLS på CentOS 7

Hvordan installere YOURLS på CentOS 7

YOURLS (Your Own URL Shortener) er en åpen kildekode-applikasjon for URL-forkorting og dataanalyse. I denne artikkelen vil vi dekke installasjonsprosessen

Hvordan installere og konfigurere ArangoDB på CentOS 7

Hvordan installere og konfigurere ArangoDB på CentOS 7

Bruker du et annet system? Introduksjon ArangoDB er en åpen kildekode NoSQL-database med en fleksibel datamodell for dokumenter, grafer og nøkkelverdier. Det er

Bruke Etckeeper for versjonskontroll av /etc

Bruke Etckeeper for versjonskontroll av /etc

Innledning /etc/-katalogen spiller en kritisk rolle i måten et Linux-system fungerer på. Grunnen til dette er fordi nesten alle systemkonfigurasjoner

Hvorfor bør du bruke SSHFS? Hvordan montere et eksternt filsystem med SSHFS på CentOS 6

Hvorfor bør du bruke SSHFS? Hvordan montere et eksternt filsystem med SSHFS på CentOS 6

Mange systemadministratorer administrerer store mengder servere. Når filer må åpnes på tvers av forskjellige servere, logger du på hver enkelt individuelt ca

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer