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:
- Késések a weboldalak betöltésében a hosszú HTTP-fejlécek miatt.
- A HTTP/1.1 minden fájlhoz TCP-kapcsolatonként csak egy kérést tud küldeni.
- 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:
- 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.
- 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.
- Gyorsabb webes teljesítmény, ami jobb SEO helyezést eredményez.
- Továbbfejlesztett biztonság, mivel a legtöbb általános böngésző a HTTP/2-t HTTPS-en keresztül tölti be.
- 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.