Kaip įgalinti HTTP/2 Ubuntu „Apache“.


Nuo pat World Wide Web (www) įkūrimo, HTTP protokolas bėgant metams buvo tobulinamas, kad būtų galima teikti saugų ir greitą skaitmeninį turinį visame pasaulyje. internetas.

Plačiausiai naudojama versija yra HTTP 1.1 ir, nors joje yra funkcijų patobulinimų ir našumo optimizavimo, siekiant pašalinti ankstesnių versijų trūkumus, ji neatitinka kelių kitų svarbių funkcijų, kurias išsprendė >HTTP/2.

Kokie yra HTTP/1.1 apribojimai?

Protokolas HTTP/1.1 turi šiuos trūkumus, dėl kurių jis nėra toks idealus, ypač kai veikia didelio srauto žiniatinklio serveriai:

  1. Vėluojama įkelti tinklalapius dėl ilgų HTTP antraščių.
  2. HTTP/1.1 gali išsiųsti tik vieną užklausą kiekvienam failui per TCP ryšį.
  3. Atsižvelgiant į tai, kad HTTP/1.1 apdoroja vieną užklausą kiekvienam TCP ryšiui, naršyklės yra priverstos siųsti lygiagrečių TCP jungčių antplūdį, kad vienu metu apdorotų užklausas. Tai sukelia TCP perkrovą ir galiausiai pralaidumo eikvojimą bei tinklo pablogėjimą.

Aukščiau minėtos problemos dažnai lėmė našumo pablogėjimą ir dideles pralaidumo naudojimo išlaidas. HTTP/2 atsirado siekiant išspręsti šias problemas ir dabar yra HTTP protokolų ateitis.

HTTP/2 naudojimo pranašumai

Jis siūlo šiuos privalumus:

  1. Antraštės glaudinimas, kuris sumažina klientų užklausas ir taip sumažina pralaidumo sąnaudas. Rezultatas yra greitas puslapio įkėlimo greitis.
  2. Kelių užklausų tankinimas vienu TCP ryšiu. Tiek serveris, tiek klientas gali suskaidyti HTTP užklausą į kelis kadrus ir pergrupuoti juos kitame gale.
  3. Greitesnis žiniatinklio našumas, dėl kurio gaunamas geresnis SEO reitingas.
  4. Patobulinta sauga, nes dauguma pagrindinių naršyklių įkelia HTTP/2 per HTTPS.
  5. Dėl antraštės glaudinimo funkcijos HTTP/2 yra patogesnis mobiliesiems.

Nepaisant to, HTTP/2 įgalinsime Apache, naudodami Ubuntu 20.04 LTS ir Ubuntu 18.04 LTS.

Būtinos sąlygos:

Prieš pradėdami įsitikinkite, kad „Apache“ žiniatinklio serveryje įgalinote HTTPS prieš įgalindami HTTP/2. Taip yra todėl, kad visos pagrindinės žiniatinklio naršyklės palaiko HTTP/2 per HTTPS. Turiu domeno pavadinimą, nukreiptą į egzempliorių Ubuntu 20.04, kuriame veikia „Apache“ serveris, apsaugotas naudojant Let’s Encrypt sertifikatą.

Be to, rekomenduojama turėti Apache 2.4.26 ir naujesnes versijas gamybiniams serveriams, ketinantiems pereiti prie HTTP/2.

Norėdami patikrinti naudojamą Apache versiją, vykdykite komandą:

apache2 -v

Iš išvesties matote, kad šio straipsnio rašymo metu naudojame naujausią versiją, kuri yra Apache 2.4.41.

Įgalinkite HTTP/2 „Apache Virtual Host“.

Norėdami pradėti, pirmiausia patvirtinkite, kad žiniatinklio serveryje veikia HTTP/1.1. Tai galite padaryti naršyklėje atidarę kūrėjo įrankių skiltį Google chrome naudodami Ctrl + SHIFT + I derinį. Spustelėkite skirtuką Tinklas ir raskite stulpelį Protokolas.

Tada įgalinkite HTTP/2 modulį Ubuntu vykdydami šią komandą.

sudo a2enmod http2

Tada suraskite ir redaguokite SSL virtualiosios prieglobos failą. Jei įgalinote HTTPS naudodami Šifruokime, bus sukurtas naujas failas naudojant le-ssl.conf. priesaga.

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

Įterpkite toliau pateiktą direktyvą po žymos .

Protocols h2 http/1.1

Norėdami išsaugoti pakeitimus, iš naujo paleiskite „Apache“ žiniatinklio serverį.

sudo systemctl restart apache2

Norėdami patikrinti, ar įgalintas HTTP/2, gaukite HTTP antraštes naudodami šią curl komandą, kaip parodyta.

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

Turėtumėte gauti rodomą išvestį.

HTTP/2 200

Naršyklėje iš naujo įkelkite svetainę. Tada grįžkite į kūrėjo įrankius ir patvirtinkite HTTP/2, pažymėtą h2 etikete stulpelyje Protokolas.

Naudojant mod_php modulį su Apache

Jei kartu su mod_php moduliu naudojate Apache, turite perjungti į PHP-FPM. Taip yra todėl, kad mod_php modulis naudoja išankstinį MPM modulį, kurio nepalaiko HTTP/2. Turite pašalinti išankstinį MPM ir perjungti į mpm_event modulį, kurį palaikys HTTP/2.

Pavyzdžiui, jei naudojate PHP 7.4 mod_php modulį, išjunkite jį, kaip parodyta:

sudo a2dismod php7.4 

Tada išjunkite išankstinį MPM modulį.

sudo a2dismod mpm_prefork

Išjungę modulius, įgalinkite Event MPM, Fast_CGI ir setenvif modulius, kaip parodyta.

sudo a2enmod mpm_event proxy_fcgi setenvif

Įdiekite PHP-FPM Ubuntu

Tada įdiekite ir paleiskite PHP-FPM, kaip parodyta.

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

Tada įgalinkite PHP-FPM, kad būtų paleistas įkrovos metu.

sudo systemctl enable php7.4-fpm

Tada įjunkite PHP-FPM kaip „Apache“ PHP tvarkyklę ir iš naujo paleiskite „Apache“ žiniatinklio serverį, kad pakeitimai būtų atlikti.

sudo a2enconf php7.4-fpm

Įgalinkite HTTP/2 palaikymą „Apache Ubuntu“.

Tada įjunkite HTTP/2 modulį, kaip anksčiau.

sudo a2enmod http2

Iš naujo paleiskite „Apache“, kad sinchronizuotumėte visus pakeitimus.

sudo systemctl restart apache2

Galiausiai galite patikrinti, ar jūsų serveris naudoja HTTP/2 protokolą, naudodami curl komandą, kaip parodyta.

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

Taip pat galite pasirinkti naudoti kūrėjo įrankius naršyklėje Google Chrome, kad patvirtintumėte, kaip nurodyta anksčiau. Turime iki šio vadovo pabaigos. Tikimės, kad informacija jums buvo vertinga ir galėsite lengvai įjungti HTTP/2 Apache.