Weboldal keresés

A HTTP/2 engedélyezése az Ubuntu Apache-ban


A World Wide Web (www) kezdete óta a HTTP protokoll az évek során fejlődött, hogy biztonságos és gyors digitális tartalmat biztosítson Internet.

A legszélesebb körben használt verzió a HTTP 1.1, és bár számos funkciójavítást és teljesítményoptimalizálást tartalmaz a korábbi verziók hiányosságainak kiküszöbölése érdekében, elmarad néhány egyéb kiemelkedő funkciótól, amelyeket a >HTTP/2.

Mik a HTTP/1.1 korlátai?

A HTTP/1.1 protokoll tele van a következő hiányosságokkal, amelyek miatt kevésbé ideális, különösen nagy forgalmú webszerverek futtatásakor:

  1. Késések a weboldalak betöltésében a hosszú HTTP-fejlécek miatt.
  2. A HTTP/1.1 minden fájlhoz TCP-kapcsolatonként csak egy kérést tud küldeni.
  3. Tekintettel arra, hogy a HTTP/1.1 minden TCP-kapcsolathoz egy kérést dolgoz fel, a böngészők kénytelenek párhuzamos TCP-kapcsolatok özönét küldeni a kérések egyidejű feldolgozásához. Ez TCP-torlódáshoz, végső soron sávszélesség-veszteséghez és hálózatromláshoz vezet.

A fent említett problémák gyakran a teljesítmény romlásához és a sávszélesség-használat magas rezsiköltségéhez vezettek. A HTTP/2 bekerült a képbe, hogy megoldja ezeket a problémákat, és most a HTTP-protokollok jövője.

A HTTP/2 használatának előnyei

A következő előnyöket kínálja:

  1. Fejléc-tömörítés, amely minimalizálja az ügyfelek kéréseit, és ezáltal csökkenti a sávszélesség-felhasználást. Az eredmény a gyors oldalbetöltési sebesség.
  2. Több kérés multiplexelése egy TCP-kapcsolaton keresztül. Mind a szerver, mind a kliens egy HTTP-kérést több keretre bonthat, és a másik végén átcsoportosíthatja azokat.
  3. Gyorsabb webes teljesítmény, ami jobb SEO helyezést eredményez.
  4. Továbbfejlesztett biztonság, mivel a legtöbb általános böngésző a HTTP/2-t HTTPS-en keresztül tölti be.
  5. A HTTP/2 a fejléctömörítési funkciónak köszönhetően mobilbarátabbnak tekinthető.

Ennek ellenére engedélyezni fogjuk a HTTP/2 szolgáltatást az Apache rendszeren az Ubuntu 20.04 LTS és az Ubuntu 18.04 LTS rendszeren.

Előfeltételek:

Mielőtt elkezdené, győződjön meg arról, hogy engedélyezte a HTTPS szolgáltatást az Apache webszerveren, mielőtt engedélyezné a HTTP/2 szolgáltatást. Ennek az az oka, hogy minden általános webböngésző támogatja a HTTP/2 HTTPS felett. Van egy domain nevem, amely egy példányra mutatott az Ubuntu 20.04 rendszeren, amely Let’s Encrypt tanúsítvánnyal védett Apache-kiszolgálót futtat.

Ezenkívül ajánlott az Apache 2.4.26 és újabb verziói a HTTP/2-re áttérni szándékozó éles szerverekhez.

A futó Apache verziójának ellenőrzéséhez hajtsa végre a következő parancsot:

apache2 -v

A kimenetből láthatja, hogy a legújabb verziót használjuk, amely a cikk írásakor Apache 2.4.41.

A HTTP/2 engedélyezése Apache Virtual Host-on

A kezdéshez először ellenőrizze, hogy a webszerveren a HTTP/1.1 fut-e. Ezt megteheti böngészőben a Google Chrome fejlesztői eszközök szakaszának megnyitásával a Ctrl+SHIFT+I kombináció használatával. Kattintson a „Hálózat” fülre, és keresse meg a „Protokoll” oszlopot.

Ezután engedélyezze a HTTP/2 modult az Ubuntu rendszerben a következő parancs futtatásával.

sudo a2enmod http2

Ezután keresse meg és szerkessze az SSL virtuális gazdagép fájlját. Ha engedélyezte a HTTPS-t a Titkosítsuk használatával, egy új fájl jön létre a le-ssl.conf fájllal. utótag.

sudo vim /etc/apache2/sites-enabled/your-domain-name-le-ssl.conf

Illessze be az alábbi direktívát a címke után.

Protocols h2 http/1.1

A módosítások mentéséhez indítsa újra az Apache webszervert.

sudo systemctl restart apache2

Ha ellenőrizni szeretné, hogy a HTTP/2 engedélyezve van-e, kérje le a HTTP-fejléceket a következő curl paranccsal, ahogy a képen látható.

curl -I --http2 -s https://domain.com/ | grep HTTP

Meg kell kapnia a megjelenített kimenetet.

HTTP/2 200

A böngészőben töltse be újra a webhelyet. Ezután térjen vissza a fejlesztői eszközökhöz, és erősítse meg a HTTP/2-t, amelyet a h2 címke jelöl a „Protokoll” oszlopban.

Amikor a mod_php modult Apache-val használja

Ha az Apache programot futtatja a mod_php modul mellett, akkor át kell váltania a PHP-FPM-re. Ennek az az oka, hogy a mod_php modul a prefork MPM modult használja, amelyet a HTTP/2 nem támogat. El kell távolítania az MPM prefork programot, és át kell váltania az mpm_event modulra, amelyet a HTTP/2 támogat.

Ha például a PHP 7.4 mod_php modult használja, tiltsa le az alábbi módon:

sudo a2dismod php7.4 

Ezt követően tiltsa le a prefork MPM modult.

sudo a2dismod mpm_prefork

A modulok letiltása után engedélyezze az Esemény MPM, Fast_CGI és setenvif modulokat az ábra szerint.

sudo a2enmod mpm_event proxy_fcgi setenvif

Telepítse a PHP-FPM-et Ubuntu-ra

Ezután telepítse és indítsa el a PHP-FPM programot az ábra szerint.

sudo apt install php7.4-fpm 
sudo systemctl start php7.4-fpm

Ezután engedélyezze a PHP-FPM lehetőséget, hogy elinduljon a rendszerindításkor.

sudo systemctl enable php7.4-fpm

Ezután engedélyezze a PHP-FPM programot az Apache PHP-kezelőjeként, és indítsa újra az Apache webszervert a módosítások végrehajtásához.

sudo a2enconf php7.4-fpm

Engedélyezze a HTTP/2 támogatást az Apache Ubuntuban

Ezután engedélyezze a HTTP/2 modult, mint korábban.

sudo a2enmod http2

Az összes módosítás szinkronizálásához indítsa újra az Apache-ot.

sudo systemctl restart apache2

Végül az ábrán látható curl paranccsal tesztelheti, hogy a szervere használja-e a HTTP/2 protokollt.

curl -I --http2 -s https://domain.com/ | grep HTTP

Dönthet úgy is, hogy a Google Chrome böngésző fejlesztői eszközeit használja az ellenőrzéshez a korábban dokumentált módon. Az útmutató végére értünk. Reméljük, hogy értékesnek találta az információkat, és könnyedén, kényelmesen engedélyezheti a HTTP/2 szolgáltatást az Apache rendszeren.