Siit saate teada, kuidas kiirendada veebisaite Nginxi ja Gzip-mooduli abil


Isegi ajal, kui kogu maailmas on saadaval märkimisväärne Interneti-kiirus, on kõik jõupingutused veebisaidi laadimisaja optimeerimiseks avatud kätega teretulnud.

Selles artiklis käsitleme meetodit ülekandekiiruse suurendamiseks, vähendades tihendamise abil faili suurust. See lähenemine toob lisakasu, kuna see vähendab ka protsessis kasutatavat ribalaiust ja muudab selle eest maksva veebisaidi omaniku jaoks odavamaks.

Eespool punktis nimetatud eesmärgi saavutamiseks kasutame selles artiklis Nginxit ja selle sisseehitatud gzip-moodulit. Nagu ametlikus dokumentatsioonis öeldakse, on see moodul filter, mis tihendab vastuseid tuntud gzip-tihendusmeetodi abil. See tagab edastatud andmete suuruse tihendamise poole võrra või isegi rohkem.

Selle postituse lõppu jõudmiseks on teil veel üks põhjus kaaluda Nginxi kasutamist oma veebisaitide ja rakenduste teenindamiseks.

Nginxi veebiserveri installimine

Nginx on saadaval kõigi suuremate kaasaegsete distributsioonide jaoks. Ehkki selle artikli jaoks kasutame CentOS 7 virtuaalset masinat (IP 192.168.0.29).

Allpool toodud juhised töötavad väheste (kui üldse) muudatustega ka teistes levitustes. Eeldatakse, et teie VM on uus install; vastasel juhul peate veenduma, et teie arvutis pole ühtegi muud veebiserverit (näiteks Apache).

Nginxi koos vajalike sõltuvustega installimiseks kasutage järgmist käsku:

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

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

Veenduge, et installimine oleks edukalt lõpule viidud ja et Nginx suudaks faile serveerida, käivitage veebiserver:

# systemctl start nginx
# systemctl enable nginx

ja seejärel avage veebibrauser ja minge saidile http://192.168.0.29 (ärge unustage asendada 192.168.0.29 oma serveri IP-aadressi või hosti nimega). Peaksite nägema tervituslehte:

Peame meeles pidama, et mõnda failitüüpi saab tihendada paremini kui teisi. Lihttekstifailid (näiteks HTML-, CSS- ja JavaScripti failid) tihendatakse väga hästi, teised aga (.iso-failid, tarballid ja pildid, kui nimetada vaid mõnda) mitte, kuna need on juba oma olemuselt tihendatud.

Seega on ootuspärane, et Nginxi ja gzipi kombinatsioon võimaldab meil suurendada esimese ülekandekiirusi, samas kui teine võib näidata vähest paranemist või üldse mitte mingit paranemist.

Samuti on oluline meeles pidada, et kui gzip-moodul on lubatud, on HTML-failid ALATI tihendatud, kuid muud veebisaitidel ja rakendustes tavaliselt leiduvad failitüübid (nimelt CSS ja JavaScript) mitte.

Nginxi veebisaidi kiiruste testimine ILMA gzip-moodulita

Alustuseks laadime alla täielik Bootstrapi mall, suurepärane HTML-, CSS- ja JavaScripti failide kombinatsioon.

Pärast tihendatud faili allalaadimist pakime selle meie serveriploki juurkataloogi (pidage meeles, et see on Apache virtuaalse hosti deklaratsioonis käskkirja DocumentRoot vaste Nginx):

# 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

/var/www/html/tecmint -i sees peaks olema järgmine kataloogistruktuur:

# ls -l /var/www/html/tecmint

Nüüd minge saidile http://192.168.0.29/tecmint ja veenduge, et leht oleks õigesti laaditud. Enamik kaasaegseid brausereid sisaldab komplekti arendaja tööriistu. Firefoxis saate selle avada menüü Tööriistad → Veebiarendaja kaudu.

Eriti huvitab meid alammenüü Network , mis võimaldab meil jälgida kõiki arvuti ja kohaliku võrgu ning Interneti vahel toimuvaid võrgutaotlusi.

Arendaja tööriistade menüü Network avamise otsetee on Ctrl + Shift + Q . Vajutage seda klahvikombinatsiooni või kasutage selle avamiseks menüüriba.

Kuna oleme huvitatud HTML-, CSS- ja JavaScripti failide edastamise uurimisest, klõpsake allservas asuvatel nuppudel ja värskendage lehte. Põhiekraanil näete kõigi HTML-, CSS- ja JavaScripti failide edastamise üksikasju:

Veeru Suurus (mis näitab üksikuid failisuurusi) paremal näete üksikuid ülekandeaegu. Samuti saate topeltklõpsata mis tahes failil, et näha täpsemat teavet vahekaardil Timings .

Veenduge, et märkisite ülaltoodud pildil näidatud ajastus, et saaksite neid sama ülekandega võrrelda, kui oleme gzip-mooduli lubanud.

Gzip-mooduli lubamine ja seadistamine Nginxis

Gzip-mooduli lubamiseks ja konfigureerimiseks avage /etc/nginx/nginx.conf , leidke põhiserveri plokk, nagu on näidatud alloleval pildil, ja lisage või muutke järgmisi ridu (ärge unustage semikoolon lõpus või Nginx tagastab hiljem taaskäivitamisel veateate!)

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

Gzip-direktiiv lülitab gzip-mooduli sisse või välja, samas kui gzip_types kasutatakse kõigi MIME-tüüpide loendisse, mida moodul peaks käsitsema.

MIME tüüpide kohta lisateabe saamiseks ja saadaolevate tüüpide vaatamiseks minge jaotisele Põhitõed_ht__TPTP_MIME-tüübid

Nginxi veebisaidi kiiruste testimine Gzip-tihendusmooduliga

Kui oleme ülaltoodud toimingud lõpetanud, taaskäivitame Nginxi ja laadime lehe uuesti alla, vajutades klahve Ctrl + F5 (see töötab jällegi Firefoxis, nii et kui kasutate mõnda muud brauserit, uurige kõigepealt vastavat dokumentatsiooni) vahemälu tühistamiseks ja jälgime ülekandeaegu:

# systemctl restart nginx

Vahekaardil Võrgu taotlused on toodud mõningaid olulisi täiustusi. Võrrelge ajastusi, et ise veenduda, pidades silmas, et tegemist on ülekannetega meie arvuti ja 192.168.0.29 vahel (ülekanded Google'i serverite ja CDN-de vahel on meie haardeulatusest väljas):

Vaatleme näiteks järgmisi failiedastuse näiteid enne/pärast gzipi lubamist. Ajastused on antud millisekundites:

  1. index.html (loendi ülaosas tähistab /tecmint/): 15/4
  2. Creative.min.css : 18/8
  3. jquery.min.js : 17/7

Kas see ei pane sind Nginxit veelgi rohkem armastama? Niipalju kui ma olen mures, see nii on!

Kokkuvõte

Selles artiklis oleme näidanud, et failide edastamise kiirendamiseks saate kasutada moodulit Nginx gzip. Gzip-mooduli ametlik dokumentatsioon loetleb teisi seadistamisdirektiive, mida võiksite vaadata.

Lisaks on Mozilla arendajavõrgu veebisaidil kirje Network Monitori kohta, mis selgitab, kuidas seda tööriista kasutada võrgutaotluse kulisside taga toimuva mõistmiseks.

Nagu alati, võite julgelt kasutada allolevat kommentaarivormi, kui teil on selle artikli kohta küsimusi. Ootame teid alati huviga!