Sužinokite, kaip pagreitinti svetaines naudojant Nginx ir Gzip modulį


Net ir tuo metu, kai visame pasaulyje pasiekiama didelė interneto sparta, visos pastangos optimizuoti svetainės įkėlimo laiką yra sveikintinos išskėstomis rankomis.

Šiame straipsnyje aptarsime būdą, kaip padidinti perdavimo greitį, sumažinant failų dydį glaudinant. Šis metodas suteikia papildomos naudos, nes taip pat sumažina procese naudojamą pralaidumą ir atpigia svetainės savininkui, kuris už tai moka.

Norėdami pasiekti aukščiau pateiktoje pastraipoje nurodytą tikslą, šiame straipsnyje naudosime Nginx ir jo įtaisytąjį gzip modulį. Kaip teigiama oficialioje dokumentacijoje, šis modulis yra filtras, suglaudinantis atsakymus naudojant gerai žinomą gzip glaudinimo metodą. Tai užtikrina, kad perduodamų duomenų dydis bus suspaustas per pusę ar net daugiau.

Siūloma perskaityti: galutinis vadovas, kaip apsaugoti, sustiprinti ir padidinti Nginx svetainių našumą

Kai pasieksite šio įrašo apačią, turėsite dar vieną priežastį apsvarstyti galimybę naudoti Nginx savo svetainėms ir programoms aptarnauti.

Nginx žiniatinklio serverio diegimas

Nginx galima naudoti visiems pagrindiniams šiuolaikiniams platinimams. Nors šiame straipsnyje naudosime CentOS 7 virtualią mašiną (IP 192.168.0.29).

Toliau pateiktos instrukcijos veiks su nedideliais (jei tokių bus) pakeitimais ir kituose platinimuose. Daroma prielaida, kad jūsų VM yra naujai įdiegta; kitu atveju turėsite įsitikinti, kad jūsų kompiuteryje neveikia kiti žiniatinklio serveriai (pvz., Apache).

Norėdami įdiegti Nginx kartu su reikiamomis priklausomybėmis, naudokite šią komandą:


----------- On CentOS/RHEL 7 and Fedora 22-24 ----------- 
yum update && yum install nginx

----------- On Debian and Ubuntu Distributions ----------- 
apt update && apt install nginx

Norėdami patikrinti, ar diegimas sėkmingai baigtas ir ar Nginx gali aptarnauti failus, paleiskite žiniatinklio serverį:


systemctl start nginx
systemctl enable nginx

tada atidarykite žiniatinklio naršyklę ir eikite į http://192.168.0.29 (nepamirškite pakeisti 192.168.0.29 savo serverio IP adresu arba pagrindinio kompiuterio pavadinimu) . Turėtumėte pamatyti pasveikinimo puslapį:

Turime nepamiršti, kad kai kuriuos failų tipus galima suspausti geriau nei kitus. Paprasto teksto failai (pvz., HTML, CSS ir JavaScript failai) labai gerai suglaudinami, o kiti (.iso) failai, tarbalai ir vaizdai, kad būtų tik keletas), ne, nes jie jau yra suglaudinti pagal prigimtį.

Taigi reikia tikėtis, kad Nginx ir gzip derinys leis mums padidinti pirmojo perdavimo greitį, o pastarasis gali šiek tiek pagerėti arba visai nepagerėti. visi.

Taip pat svarbu nepamiršti, kad kai įgalintas gzip modulis, HTML failai VISADA yra suglaudinami, tačiau kiti failų tipai dažniausiai randami svetainės ir programos (būtent CSS ir JavaScript) nėra.

„Nginx“ svetainės greičio testavimas BE gzip modulio

Norėdami pradėti, atsisiųskite visą Bootstrap šabloną, puikų HTML, CSS ir JavaScript failų derinį.

Atsisiuntę suglaudintą failą išpakuosime jį į savo serverio bloko šakninį katalogą (atminkite, kad tai Nginx atitikmuo DocumentRoot direktyvai Apache virtualiojo pagrindinio kompiuterio deklaracijoje ):


cd /var/www/html
wget https://github.com/BlackrockDigital/startbootstrap-creative/archive/gh-pages.zip
unzip -a gh-pages.zip
mv startbootstrap-creative-gh-pages tecmint

Turėtumėte turėti tokią katalogo struktūrą /var/www/html/tecmint:


ls -l /var/www/html/tecmint

Dabar eikite į http://192.168.0.29/tecmint ir įsitikinkite, kad puslapis įkeliamas tinkamai. Daugelyje šiuolaikinių naršyklių yra kūrėjo įrankių rinkinys. Programoje Firefox galite ją atidaryti naudodami meniu Įrankiai → Žiniatinklio kūrėjas.

Mus ypač domina submeniu Tinklas, kuris leis mums stebėti visas tinklo užklausas, vykstančias tarp mūsų kompiuterio ir vietinio tinklo bei interneto.

Siūlomas skaitymas: įdiekite „Mod_Pagespeed“, kad pagreitintumėte „Nginx“ našumą iki 10 kartų

Kūrėjo įrankių meniu Tinklas atidaromas spartusis klavišas Ctrl + Shift + Q. Paspauskite tą klavišų kombinaciją arba naudokite meniu juostą, kad ją atidarytumėte.

Kadangi esame suinteresuoti ištirti HTML, CSS ir JavaScript failų perkėlimą, spustelėkite apačioje esančius mygtukus ir atnaujinkite puslapį. Pagrindiniame ekrane matysite išsamią informaciją apie visų HTML, CSS ir JavaScript failų perkėlimą:

Stulpelio Dydis (kuriame rodomi atskirų failų dydžiai) dešinėje matysite atskirus perdavimo laikus. Taip pat galite dukart spustelėti bet kurį failą, kad pamatytumėte daugiau informacijos skirtuke Laikai.

Būtinai užsirašykite anksčiau esančiame paveikslėlyje parodytus laikus, kad galėtumėte juos palyginti su tuo pačiu perkėlimu, kai įgalinsime gzip modulį.

„Gzip“ modulio įgalinimas ir konfigūravimas „Nginx“.

Norėdami įjungti ir sukonfigūruoti gzip modulį, atidarykite /etc/nginx/nginx.conf, suraskite pagrindinį serverio bloką, kaip parodyta toliau pateiktame paveikslėlyje, ir pridėkite arba pakeiskite toliau nurodytus eilutės (nepamirškite kabliataškio pabaigoje arba Nginx pateiks klaidos pranešimą vėliau paleisdamas iš naujo!)


root     	/var/www/html;
gzip on;
gzip_types text/plain image/jpeg image/png text/css text/javascript;

Gzip direktyva įjungia arba išjungia gzip modulį, o gzip_types naudojama nurodyti visus MIME tipus, kuriuos modulis turėtų tvarkyti.

Norėdami sužinoti daugiau apie MIME tipus ir peržiūrėti galimus tipus, eikite į Basics_of_HTTP_MIME_types.

„Nginx“ svetainės greičio testavimas naudojant „Gzip“ suspaudimo modulį

Atlikę aukščiau nurodytus veiksmus, iš naujo paleiskite Nginx ir iš naujo įkelkime puslapį paspausdami Ctrl + F5 (vėlgi, tai veikia Firefox, todėl jei naudojate kitą naršyklę, pirmiausia perskaitykite atitinkamą dokumentaciją), kad nepaisytumėte talpyklos ir stebėkime perdavimo laiką:


systemctl restart nginx

Tinklo užklausų skirtuke rodomi keli reikšmingi patobulinimai. Palyginkite laiką, kad pamatytumėte patys, turėdami omenyje, kad tai yra perdavimai tarp mūsų kompiuterio ir 192.168.0.29 (pervedimų tarp „Google“ serverių ir CDN mes negalime suprasti):

Pavyzdžiui, apsvarstykite šiuos failų perdavimo pavyzdžius prieš/po gzip įjungimo. Laikai pateikiami milisekundėmis:

  1. index.html (sąrašo viršuje pavaizduota /tecmint/): 15/4
  2. Creative.min.css: 18/8
  3. jquery.min.js: 17 iš 7

Ar dėl to dar labiau mylite Nginx? Kiek man rūpi, taip ir yra!

Siūlomas skaitymas: 5 patarimai, kaip padidinti „Apache“ žiniatinklio serverio našumą

Santrauka

Šiame straipsnyje mes parodėme, kad galite naudoti Nginx gzip modulį, kad pagreitintumėte failų perdavimą. Oficialioje gzip modulio dokumentacijoje pateikiamos kitos konfigūracijos direktyvos, kurias galbūt norėsite peržiūrėti.

Be to, „Mozilla Developer Network“ svetainėje yra įrašas apie tinklo monitorių, kuriame paaiškinama, kaip naudoti šį įrankį norint suprasti, kas vyksta tinklo užklausos užkulisiuose.

Kaip visada, nedvejodami naudokite toliau pateiktą komentarų formą, jei turite klausimų apie šį straipsnį. Mes visada laukiame jūsų žinučių!