Főbb pontok
HTTP/2 és SSL
GYIK
1. rész: Apache (webszerver)
2. rész: cURL
A HTTP/2 a HTTP protokoll legújabb verziója, amely az SPDY-n alapul. Fejlesztését a Google kezdeményezte, és a HTTP/2 nagyrészt az SPDY kódbázisán és koncepcióin alapul.
Az SPDY már elavult, és a HTTP/2 világszerte történő bevezetése folyamatban van. Sok hosting cég már nyújtott támogatást a HTTP/2-hez a megnövelt sebesség miatt.
A cikk írásakor a DirectAdmin nem biztosít egy kattintással engedélyezhető HTTP/2-t. A HTTP/2 támogatás elérésének azonban többféle módja van. Az alábbiakban vázolt módszer bizonyult a legrobusztusabb és legstabilabb megközelítésnek.
Számos összetevőt frissíteni kell ahhoz, hogy a HTTP/2 érvénybe lépjen. Emiatt erősen javaslom, hogy készítsen egy pillanatképet. Ha lehetséges, kövesse ezt az útmutatót egy teljesen új szerveren.
Ez az útmutató két részből áll: a HTTP/2 támogatás engedélyezése a webszerverben (Apache) az ügyfelek (látogatók) számára, valamint a HTTP/2 aktiválása a cURL-ben. A HTTP v2 engedélyezése a cURL számára arra kényszeríti a kiszolgálóról származó cURL kéréseket, hogy a HTTP/2 protokollt használják a célszerverekhez, ha lehetséges.
Főbb pontok
- A HTTP/2 használatához nem szükséges mind az Apache, sem a cURL frissítése. Rendben van, ha követi bármelyik útmutatót, mivel ezek egymástól függetlenül működnek.
- Volt néhány furcsa eset, amikor az Apache és a HTTP/2 jól működik, de a betöltés sikeres a „véletlenszerű” böngészőkön, és a webhelyek elérhetetlenné válnak (időtúllépés) másokon. Az eredeti Apache-konfiguráció visszaállítása megoldja ezt, mivel az Apache nem ismeri a HTTP/2-t, és nem kísérel meg tartalmat kiszolgálni rajta.
- Mindig készítsen biztonsági másolatot vagy készítsen pillanatképet előre. A HTTP/2 engedélyezése viszonylag törékeny folyamat lehet, ezért fontos, hogy szükség esetén vissza tudjuk állítani a változtatásokat.
- A szoftver újrafordítása mindig okozhat enyhe leállást. Egyes esetekben ez egy perc alatt van, de nem lehet pontosan megmondani. Fel kell készülnie legalább egy kis leállásra.
- Ehhez az útmutatóhoz root hozzáférésre van szüksége a szerverhez. Ha nem tudja root jogosultságra emelni, lépjen kapcsolatba a kiszolgáló rendszergazdájával, hogy engedélyezze a HTTP/2-t a szerveren.
HTTP/2 és SSL
Bár magától a HTTP/2-től ez nem technikai követelmény, a legtöbb esetben szükség lesz SSL-tanúsítványra a HTTP/2 használatához. Mint említettük, a HTTP/2 technikailag nem igényli ezt, de sok böngésző (Safari, Chrome, Firefox stb.) megalkotta ezt a szabványt. A tartalom nem jelenik meg HTTP/2-n keresztül, ha egy oldalt SSL nélkül töltenek be ezekkel a böngészőkkel. Tekintettel arra, hogy a legtöbb felhasználó ezeket a böngészőket használja (és másokat is), amelyek szintén részt vesznek ebben a szabványban, SSL-tanúsítványt kell használnia.
Ha ingyenes SSL-tanúsítványt keres, vessen egy pillantást az egyik Let's Encrypt útmutatónkra:
Javasolt: A Let's Encrypt telepítése a DirectAdminra
Alternatív vezérlőpanelek:
Általános útmutatók:
GYIK
Ez az útmutató dokumentálja a Brotli telepítését?
Nem, ebben a cikkben nem ismertetünk módszert a Brotli HTTP/2 melletti telepítésére.
A fordítás ok nélkül meghiúsul, ezért pontosan követtem a cikkben leírt lépéseket. Hogyan oldjam meg ezt?
Annak ellenére, hogy ennek számos oka lehet, figyelembe véve a különböző környezeteket és hasonlókat, előfordulhat, hogy a területi beállítások nem megfelelőek. Próbáld meg beírni LC_ALL=Ca parancsokat, hogy az Apache újrafordítására szolgáló parancs például így nézzen ki: LC_ALL=C ./build apache
Ne felejtsd el a szóközt LC_ALL=Ca parancs és a parancs között!
Elvesztek az adatok?
Abban az esetben, ha jelenleg fordított proxy-beállítást használ, például Apache és Nginx esetén, vissza kell állítania az Apache-ra, ebben az esetben valóban elveszítené az Nginx konfigurációs fájljait. Abban az esetben, ha egyéni VirtualHost konfigurációkat készített (akár a parancssoron keresztül, akár magán a DirectAdminon keresztül), ezeket tartományonként kell módosítania, hogy az Apache verziók aktívak maradjanak. Nem veszít el semmilyen adatot a felhasználói adatokkal, webhelytartalommal, adatbázisokkal stb.
Ezek az egyéni verziók megakadályozzák, hogy a jövőben frissítsem a csomagokat és a szoftvereket?
Általában nem kell aggódni emiatt. Figyelembe véve a DirectAdmin moduláris felépítését (és így a CustomBuildét is), a jövőben gond nélkül képesnek kell lennie más szoftververziókra való frissítésre vagy frissítésre. Bár a változásokat dokumentálnia kell, ha a jövőben alternatív frissítési útvonalra lesz szükség, nem kell aggódnia az új szoftverkiadásokkal való összeférhetetlenség miatt.
A DirectAdmin nem kínálja a HTTP/2-t a dobozból; ez biztosan azt jelenti, hogy nem kompatibilis, vagy megvan az oka annak, hogy nem. Miért van szükség erre a megoldásra?
A HTTP/2 telepítésének és engedélyezésének alább ismertetett módszerei nem annyira megkerülő megoldások, hanem pusztán csomagfrissítések és konfigurációs módosítások. A DirectAdmin moduláris beállításának köszönhetően ezek a változtatások teljesen rendben vannak, és nem okozhatnak problémákat vagy egyéb problémákat. Nehéz megállapítani, hogy a DirectAdmin miért nem támogatja ezt a dobozból, mivel a szerzők erre nem adtak magyarázatot. Azonban egy elég szilárd következtetés az, hogy a DirectAdmin az operációs rendszer verziócsomagjait használja. Ezek általában nem olyan naprakészek, mint az alábbi csomagok. Nincs semmi baj a HTTP/2-vel, magával a technológiával és annak kompatibilitásával. Csakúgy, mint sok más technológiának, ennek is eltarthat egy ideig a natív alkalmazkodás.
Milyen kockázatokkal járhat a HTTP/2 Apache segítségével történő aktiválása?
A HTTP/2 aktiválásakor (amely egy frissítési és konfigurációs folyamatból áll) számos olyan változó lehet, amely nem szabványosnak bizonyulhat. A legnagyobb kockázat azonban az emberi tévedésben rejlik. Előtte készíts egy pillanatképet, mindenképpen értesítsd a felhasználókat a karbantartásról (ha rajtad kívül van ilyen a szerveren), és légy óvatos. Továbbá ne másolja és illessze be a parancsokat anélkül, hogy először meggondolná, mit csinálnak.
Erősen javaslom, hogy ideiglenesen állítson fel egy külön Vultr felhőpéldányt a DirectAdmin segítségével, és kövesse a lépéseket. Ha valami hiba történne egy „friss” telepítés során, tudni fogja, hol és hogyan kell hibakeresést végrehajtani, hogy ne kelljen éles környezetben.
1. rész: Apache (webszerver)
Ha jelenleg fordított proxyt használ, váltson vissza csak Apache környezetre. Ennek az az oka, hogy a HTTP/2-t nagyon nehéz hibakeresni, ha valami elromlik. Az Apache integrált HTTP/2 funkcióinak kihasználásával hatékonyan kiküszöbölheti a problémák nagy részét.
1. lépés: Az OpenSSL frissítése
Sok esetben az Ön OpenSSL-verziója nem kompatibilis az ALPN-nel, amely a HTTP/2-hez szükséges. Ezért engedélyezzük az ALPN-t az OpenSSL frissítésével.
Először is győződjön meg arról, hogy az OpenSSL-verziója nem kompatibilis a következő futtatásával:
openssl version
Ha az OpenSSL verziója kisebb, mint 1.1.0f, hajtsa végre a következőt rootként. Ellenkező esetben ugorjon a 2. lépésre.
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
2. lépés: Az nghttp2 telepítése
A HTTP/2 működéséhez telepítenünk kell az nghttp2-t. Az Nghttp2 a HTTP/2 (és a HPACK) megvalósítása C nyelven. Az Nghttp2 a HTTP/2 kliens, szerver és proxy kombinált változata C nyelven.
Az nghttp2 telepítéséhez hajtsa végre a következő parancsokat. Szerencsére az nghttp2 közvetlenül a CustomBuildből felépíthető.
cd /usr/local/directadmin/custombuild
./build update
./build nghttp2
3. lépés: A HTTP/2 engedélyezése az Apache-ban
Módosítanunk kell néhány értéket az Apache konfigurációs fájljában, hogy az használni tudja a HTTP/2-t. Ha a webszerver nem kap utasításokat egy alternatív HTTP-verzió használatára, akkor nem használja azt. Ezért hozzá kell adnunk a HTTP/2-t a konfigurációs fájlhoz.
A változtatások életbe léptetéséhez az Apache újraépítése szükséges a CustomBuild segítségével. Mivel a CustomBuild által a szoftverek összeállításakor használt paraméterek és értékek egy dedikált konfigurációs fájlban vannak meghatározva, a legjobb gyakorlat az, ha ezeket a változtatásokat egy dedikált egyéni konfigurációs fájlba helyezi el.
Megjegyzés: ha ezeket a változtatásokat nem egyéni fájlba helyezi, akkor valószínűleg felülírja őket, és a beállítás megszakad. Kérjük, kövesse az alábbi utasításokat.
A fájl létrehozásához hajtsa végre a következő parancsokat, és töltse ki előre az alapértelmezett értékekkel, hogy utólag módosíthassuk:
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
Jelenleg van egy egyéni fájlunk, amely megegyezik a CustomBuild által használt Apache alapértelmezett konfigurációs fájljával. Módosítanunk kell a /usr/local/directadmin/custombuild/custom/ap2/configure.apachefájlt a következő karakterlánc lecserélésével:
"--with-ssl=/usr" \
val vel:
"--enable-http2" \
"--enable-ssl-staticlib-deps" \
"--with-ssl=/usr/local/lib_http2" \
Megjegyzés: Ügyeljen arra, hogy ne legyen szóköz a fordított perjel után . A túl sok szóköz a build megszakadásához vezet.
Ezután építse újra az Apache-t. A CustomBuild az imént létrehozott egyéni konfigurációs fájlt fogja használni:
./build apache
4. lépés: Az Apache konfigurációjának módosítása
Az Apache most újra épült, beleértve a szükséges modulokat és beállításokat a HTTP/2-hez. Ez azt jelenti, hogy most már van egy Apache-verzió telepítve a szerverünkre, amely támogatja a HTTP/2-t, de először meg kell mondanunk az Apache-nak, hogy valóban használja.
Adja hozzá a következő sorokat /etc/httpd/conf/extra/httpd-includes.conf:
ProtocolsHonorOrder On
Protocols h2 h2c http/1.1
Mentse el ezeket a változtatásokat, és írja át a konfigurációs fájlokat, hogy azok az újraépítések során is megmaradjanak:
cd /usr/local/directadmin/custombuild
./build rewrite_confs
A HTTP/2-nek most aktívnak kell lennie a webszerveren (Apache).
5. lépés: Indítsa újra a szervert
Indítsa újra a kiszolgálót, hogy megbizonyosodjon arról, hogy a változtatásaink az újraindítások során is megmaradnak. Kérjük, indítsa újra a szervert a Vultr vezérlőpulton keresztül vagy a rebootparancs végrehajtásával .
6. lépés: Tesztelje a HTTP/2-t
A HTTP/2 funkcionalitása könnyen tesztelhető a következő eszközzel: HTTP/2 teszt
Tekintettel arra, hogy a HTTP/2 szerver-specifikus, és nem korlátozható egy meghatározott tartománypárra vagy webhelyre, a szerverre mutató tartománynév vagy akár a szerver IP-címének megadása működnie kell.
A teszt megmondja, hogy képes-e elérni a webszervert HTTP/2-n keresztül. Ha az eszköz azt mondja, hogy a HTTP/2 aktiválva van a szerveren, a DirectAdmin webhelyek mostantól HTTP/1.1 vagy HTTP/2 protokollon keresztül is elérhetők. Abban az esetben, ha a HTTP/2 támogatás nem elérhető a kliens (látogató) számára, a böngészője visszaáll HTTP/1.1-re.
Ha az eszköz nem tudja elérni a webszervert HTTP/2-n keresztül, kövesse ismét a fenti lépéseket. Általában (mivel a fenti lépések nem írnak felül semmit) ez nem károsítja vagy töri meg a beállítást.
2. rész: cURL
Azt javaslom, hogy frissítse a cURL-t, hogy el tudja érni a HTTP/2-támogatással rendelkező szervereket. Ha egy szerver nem támogatja a HTTP/2-t, akkor a HTTP/1.1-re tér vissza.
1. lépés: Az egyéni konfigurációs fájl hozzáadása
Csakúgy, mint az Apache esetében, létrehozunk egy egyéni konfigurációs fájlt, így a CustomBuild által épített cURL az egyéni beállításainkat fogja használni.
Hozza létre a könyvtárat:
mkdir -p /usr/local/directadmin/custombuild/custom/curl
Hozd létre a fájlt:
touch /usr/local/directadmin/custombuild/custom/curl/configure.curl
Másolja és illessze be a következő tartalmat a fájlba:
#!/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
Amint láthatja, ezek a tartalmak azt mondják a cURL-nek, hogy az lib_http2SSL-könyvtár használatával kerüljön fordításra .
Mentse el a fájlt, és adja meg a megfelelő engedélyeket:
chmod 700 /usr/local/directadmin/custombuild/custom/curl/configure.curl
2. lépés: cURL létrehozása
Ezután mindössze annyit kell tennünk, hogy létrehozzuk a cURL-t.
cd /usr/local/directadmin/custombuild
./build curl
A cURL most HTTP 2 támogatással lett lefordítva.