Kako aktivirati HTTP/2 podršku na DirectAdmin-u (CentOS)

HTTP/2 je najnovija verzija HTTP protokola, bazirana na SPDY. Njegov razvoj pokrenuo je Google, a HTTP/2 se uvelike temelji na bazi koda i konceptima SPDY.

SPDY je sada zastario i prihvaćanje HTTP/2 diljem svijeta je u tijeku. Mnoge hosting tvrtke već su pružile podršku za HTTP/2 zbog njegove dodatne brzine.

U trenutku pisanja, DirectAdmin ne nudi način da se jednim klikom omogući HTTP/2. Međutim, postoji više načina za postizanje HTTP/2 podrške. Metoda navedena u nastavku pokazala se najrobusnijim i najstabilnijim pristupom.

Nekoliko komponenti treba ažurirati kako bi HTTP/2 stupio na snagu. Zbog toga vam toplo savjetujem da napravite snimak. Ako je moguće, slijedite ovaj vodič na potpuno novom poslužitelju.

Ovaj vodič se sastoji od dva dijela: omogućavanja HTTP/2 podrške na web poslužitelju (Apache) za klijente (posjetitelje) i aktivacije HTTP/2 u cURL-u. Omogućavanje HTTP v2 za cURL prisiljava cURL zahtjeve koji potječu s vašeg poslužitelja da koriste HTTP/2 za svoje odredišne ​​poslužitelje, ako je moguće.

Ključne točke

  • Nije potrebno ažurirati i Apache i cURL za korištenje HTTP/2. U redu je ako slijedite bilo koji vodič, jer oni funkcioniraju odvojeno jedan od drugog.
  • Bilo je nekoliko čudnih slučajeva u kojima se čini da Apache i HTTP/2 dobro funkcioniraju, ali učitavanje uspijeva na ''slučajnim'' preglednicima i web-mjesta postaju nedostupna (ispremanje) na drugima. Jednostavno vraćanje na izvornu Apache konfiguraciju će to popraviti, jer Apache neće znati za HTTP/2 i neće pokušati posluživati ​​sadržaj preko njega.
  • Uvijek napravite sigurnosnu kopiju ili napravite snimku unaprijed. Omogućavanje HTTP/2 može biti relativno krhak proces pa je važno moći poništiti promjene ako je potrebno.
  • Ponovno kompajliranje softvera uvijek može uzrokovati male zastoje. U nekim slučajevima, to je manje od minute, ali ne postoji način da se točno utvrdi. Trebali biste biti spremni u najmanju ruku na neke zastoje.
  • Za ovaj vodič potreban vam je root pristup poslužitelju. Ako nemate mogućnost podizanja razine dopuštenja na root, trebali biste kontaktirati administratora poslužitelja da omogući HTTP/2 na poslužitelju.

HTTP/2 i SSL

Iako to nije tehnički zahtjev samog HTTP/2, u većini slučajeva trebat će vam SSL certifikat za korištenje HTTP/2. Kao što je spomenuto, HTTP/2 to tehnički ne zahtijeva, ali mnogi preglednici (Safari, Chrome, Firefox, itd.) kreirali su ovaj standard. Sadržaj se neće posluživati ​​putem HTTP/2 kada se stranica učita bez SSL-a pomoću ovih preglednika. S obzirom da većina korisnika koristi ove preglednike (i druge) koji također sudjeluju u ovom standardu, trebali biste koristiti SSL certifikat.

Ako tražite besplatni SSL certifikat, trebali biste pogledati jedan od naših vodiča za šifriranje:

Preporučeno: Instaliranje Let's Encrypt na DirectAdmin

Alternativne upravljačke ploče:

Opći vodiči:

Pitanja

Dokumentira li ovaj vodič instalaciju Brotlija?

Ne, u ovom članku nije navedena metoda za instaliranje Brotlija uz HTTP/2.

Prevođenje ne uspijeva bez razloga, a ja sam slijedio točne korake navedene u ovom članku. Kako da to riješim?

Iako postoji mnogo mogućih razloga za to, uzimajući u obzir različita okruženja i slično, moguće je da vaše postavke jezika nisu točne. Pokušajte staviti LC_ALL=Cispred svojih naredbi, tako da bi naredba za ponovno kompajliranje Apachea izgledala ovako, na primjer: LC_ALL=C ./build apache Ne zaboravite razmak između LC_ALL=Ci naredbu!

Hoću li izgubiti neke podatke?

U slučaju da trenutno koristite postavku obrnutog proxyja, na primjer s Apacheom i Nginxom, trebali biste ga vratiti na Apache, u kojem slučaju biste doista izgubili svoje Nginx konfiguracijske datoteke. U slučaju da ste napravili prilagođene konfiguracije VirtualHosta (bilo putem naredbenog retka ili samog DirectAdmina), trebali biste ih promijeniti za svaku domenu kako bi verzije Apachea ostale aktivne. Nećete izgubiti nikakve podatke u vezi s korisničkim podacima, sadržajem web stranice, bazama podataka itd.

Hoće li me ove prilagođene verzije spriječiti da ažuriram pakete i softver u budućnosti?

Općenito, nema potrebe brinuti o tome. Uzimajući u obzir modularnu postavku DirectAdmina (a samim tim i CustomBuild), trebali biste u budućnosti moći bez problema preći na nižu verziju ili nadograditi na druge verzije softvera. Iako biste trebali dokumentirati promjene u slučaju da je u budućnosti potreban alternativni put nadogradnje, ne biste trebali brinuti o nekompatibilnosti verzija s novim izdanjima softvera.

DirectAdmin ne nudi HTTP/2 iz kutije; to sigurno znači da nije kompatibilan ili imaju svoje razloge da ne bude. Zašto je potrebno ovo rješenje?

Metode za instalaciju i omogućavanje HTTP/2 opisane u nastavku nisu toliko zaobilazna rješenja, već samo puko ažuriranje paketa i promjene konfiguracije. Zbog modularne postavke DirectAdmina, ove promjene su sasvim u redu i ne bi trebale uzrokovati probleme ili druge probleme. Teško je odrediti zašto DirectAdmin to ne podržava iz kutije, s obzirom na to da autori nisu dali objašnjenje za to. Međutim, prilično solidan zaključak je da DirectAdmin koristi pakete verzija operacijskog sustava. Oni općenito nisu tako ažurirani kao paketi u nastavku. Nema ništa loše u HTTP/2, samoj tehnologiji i njenoj kompatibilnosti. Baš kao i mnoge druge tehnologije, može potrajati neko vrijeme da se prilagode.

Koji su mogući rizici aktivacije HTTP/2 s Apacheom?

U aktivaciji HTTP/2 (koja se sastoji od procesa nadogradnje i konfiguracije) postoji mnogo varijabli koje se mogu pokazati nestandardnim. Međutim, najveći rizik leži u ljudskoj grešci. Unaprijed napravite snimku, svakako najavite održavanje svojim korisnicima (ako ih ima na poslužitelju osim vas) i budite oprezni. Nadalje, nemojte kopirati i zalijepiti naredbe bez razmišljanja o tome što one prvo rade.

Toplo preporučujem da privremeno pokrenete zasebnu instancu oblaka Vultr s DirectAdmin-om i prođete kroz korake. Ako nešto pođe po zlu pri 'svježoj' instalaciji, znat ćete gdje i kako to otkloniti greške tako da ne morate u proizvodnom okruženju.

1. dio: Apache (web poslužitelj)

Ako trenutno koristite obrnuti proxy, trebali biste se vratiti na okruženje samo za Apache. To je zato što je HTTP/2 vrlo teško otkloniti greške ako nešto pođe po zlu. Budući da možete koristiti integriranu HTTP/2 funkcionalnost Apachea, učinkovito ste u mogućnosti eliminirati vrlo velik dio problema.

Korak 1: Nadogradnja OpenSSL-a

U mnogim slučajevima vaša OpenSSL verzija nije kompatibilna s ALPN-om, koji je potreban za HTTP/2. Stoga, omogućimo ALPN ažuriranjem OpenSSL-a.

Prvo, provjerimo je li vaša OpenSSL verzija kompatibilna tako što ćemo izvršiti:

openssl version

Ako je vaša verzija OpenSSL-a manja od 1.1.0f, izvršite sljedeće kao root. U suprotnom, prijeđite na korak 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

Korak 2: Instaliranje nghttp2

Da bi HTTP/2 radio, moramo instalirati nghttp2. Nghttp2 je implementacija HTTP/2 (i HPACK) u C. Nghttp2 je kombinirana verzija HTTP/2 klijenta, poslužitelja i proxyja u C.

Da biste instalirali nghttp2, izvršite sljedeće naredbe. Srećom, nghttp2 se može izgraditi izravno iz CustomBuild-a.

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

Korak 3: Omogućavanje HTTP/2 u Apacheu

Moramo izmijeniti nekoliko vrijednosti u Apache konfiguracijskoj datoteci kako bi koristio HTTP/2. Kada web poslužitelj ne dobiva upute za korištenje alternativne HTTP verzije, neće je koristiti. Stoga moramo dodati HTTP/2 u konfiguracijsku datoteku.

Da bi ove promjene stupile na snagu, potrebna je ponovna izgradnja Apachea putem CustomBuilda. Budući da su parametri i vrijednosti koje koristi CustomBuild pri izradi softvera određeni u namjenskoj konfiguracijskoj datoteci, najbolja praksa je staviti te promjene u namjensku datoteku prilagođene konfiguracije.

Napomena: ako ove promjene ne stavite u prilagođenu datoteku, one će najvjerojatnije biti prepisane i vaše će postavljanje prekinuti. Slijedite upute navedene u nastavku.

Izvršite sljedeće naredbe kako biste kreirali datoteku i unaprijed je ispunili zadanim vrijednostima kako bismo je nakon toga mogli promijeniti:

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

Od sada imamo prilagođenu datoteku koja je identična zadanoj konfiguracijskoj datoteci za Apache koju koristi CustomBuild. Moramo izmijeniti /usr/local/directadmin/custombuild/custom/ap2/configure.apachedatoteku zamjenom sljedećeg niza:

"--with-ssl=/usr" \

s:

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

Napomena: Provjerite da nema bijelog prostora nakon bilo koje obrnute kose crte . Višak razmaka uzrokovat će prekid građenja.

Zatim ponovno izgradite Apache. CustomBuild će koristiti prilagođenu konfiguracijsku datoteku koju ste upravo stvorili:

./build apache

Korak 4: Promjena konfiguracije Apachea

Apache je sada obnovljen uključujući potrebne module i postavke za HTTP/2. To znači da sada imamo instaliranu verziju Apachea na našem poslužitelju s podrškom za HTTP/2, ali moramo reći Apacheu da je najprije koristi.

Dodajte sljedeće retke u /etc/httpd/conf/extra/httpd-includes.conf:

ProtocolsHonorOrder On
Protocols h2 h2c http/1.1

Spremite ove promjene i ponovno napišite konfiguracijske datoteke tako da budu postojane tijekom rekonstrukcije:

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

HTTP/2 bi sada trebao biti aktivan na vašem web (Apache) poslužitelju.

Korak 5: Ponovno pokrenite poslužitelj

Ponovno pokrenite poslužitelj kako biste bili sigurni da će se naše promjene zadržati tijekom ponovnih pokretanja. Ponovo pokrenite poslužitelj putem Vultr kontrolne ploče ili izvršavanjem rebootnaredbe.

Korak 6: Testirajte HTTP/2

Funkcionalnost HTTP/2 lako se može testirati korištenjem sljedećeg alata: HTTP/2 Test

S obzirom da je HTTP/2 specifičan za poslužitelj i ne može se ograničiti na određeni par domena ili web-mjesta, unošenje bilo kojeg naziva domene koji upućuje na poslužitelj ili čak IP adrese poslužitelja trebao bi funkcionirati.

Test će vam reći može li doći do web poslužitelja putem HTTP/2. U slučaju da alat kaže da je HTTP/2 aktiviran na vašem poslužitelju, do DirectAdmin web-mjesta sada se može doći putem HTTP/1.1 ili HTTP/2. U slučaju da HTTP/2 podrška nije dostupna za klijenta (posjetitelja), njegov preglednik će se vratiti na HTTP/1.1.

U slučaju da alat ne može doći do vašeg web poslužitelja putem HTTP/2, ponovite gore navedene korake. Općenito (budući da gornji koraci ne prepisuju ništa aktivno) to neće oštetiti niti prekinuti vaše postavke.

Dio 2: cURL

Preporučujem ažuriranje cURL-a tako da može doći do poslužitelja s podrškom za HTTP/2. U slučaju da poslužitelj ne podržava HTTP/2, vratit će se na HTTP/1.1.

Korak 1: Dodavanje prilagođene konfiguracijske datoteke

Baš kao i kod Apachea, izradit ćemo datoteku prilagođene konfiguraciji tako da će cURL koji je izradio CustomBuild koristiti naše prilagođene postavke.

Napravite imenik:

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

Napravite datoteku:

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

Kopirajte i zalijepite sljedeći sadržaj u datoteku:

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

Kao što možete vidjeti, ovi sadržaji govore da se cURL prevede pomoću lib_http2SSL biblioteke.

Spremite datoteku i dajte joj ispravna dopuštenja:

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

Korak 2: Izgradnja cURL-a

Dalje, sve što trebamo napraviti je izgraditi cURL.

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

cURL je sada preveden s podrškom za HTTP 2.

Ostavite komentar

Uspon strojeva: primjene AI u stvarnom svijetu

Uspon strojeva: primjene AI u stvarnom svijetu

Umjetna inteligencija nije u budućnosti, ovdje je upravo u sadašnjosti. U ovom blogu Pročitajte kako su aplikacije umjetne inteligencije utjecale na različite sektore.

DDOS napadi: kratak pregled

DDOS napadi: kratak pregled

Jeste li i vi žrtva DDOS napada i zbunjeni ste metodama prevencije? Pročitajte ovaj članak kako biste riješili svoje upite.

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Možda ste čuli da hakeri zarađuju mnogo novca, ali jeste li se ikada zapitali kako zarađuju toliki novac? raspravimo.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Želite li vidjeti revolucionarne izume Googlea i kako su ti izumi promijenili život svakog čovjeka danas? Zatim čitajte na blogu kako biste vidjeli Googleove izume.

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Koncept samovozećih automobila koji će krenuti na ceste uz pomoć umjetne inteligencije san je koji već neko vrijeme imamo. No, unatoč nekoliko obećanja, nigdje ih nema. Pročitajte ovaj blog kako biste saznali više…

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Kako se znanost razvija velikom brzinom, preuzimajući mnoge naše napore, raste i rizik da se podvrgnemo neobjašnjivoj Singularnosti. Pročitajte što bi za nas mogla značiti singularnost.

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Pročitajte blog kako biste na najjednostavniji način upoznali različite slojeve u arhitekturi velikih podataka i njihove funkcionalnosti.

Evolucija pohrane podataka – Infografika

Evolucija pohrane podataka – Infografika

Metode pohrane podataka su se razvijale možda od rođenja podataka. Ovaj blog pokriva evoluciju pohrane podataka na temelju infografike.

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

U ovom digitalnom svijetu, pametni kućni uređaji postali su ključni dio života. Evo nekoliko nevjerojatnih prednosti pametnih kućnih uređaja o tome kako naš život čine vrijednim življenja i jednostavnijim.

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Nedavno je Apple izdao macOS Catalina 10.15.4 dodatak ažuriranju kako bi riješio probleme, ali čini se da ažuriranje uzrokuje više problema koji dovode do zalijevanja mac strojeva. Pročitajte ovaj članak da biste saznali više