Tgħallem Kif Tħaffef il-Websajts billi tuża l-Modulu Nginx u Gzip


Anke fi żmien meta veloċitajiet sinifikanti tal-Internet huma disponibbli madwar id-dinja, kull sforz biex jiġu ottimizzati l-ħinijiet tat-tagħbija tal-websajt hija milqugħa b'idejha miftuħa.

F'dan l-artikolu ser niddiskutu metodu biex iżżid il-veloċitajiet ta 'trasferiment billi tnaqqas id-daqsijiet tal-fajl permezz tal-kompressjoni. Dan l-approċċ iġib benefiċċju żejjed peress li jnaqqas ukoll l-ammont ta 'bandwidth użat fil-proċess, u jagħmilha irħas għas-sid tal-websajt li jħallas għaliha.

Biex twettaq l-għan iddikjarat fil-paragrafu ta 'hawn fuq, se nużaw Nginx u l-modulu gzip inkorporat tiegħu f'dan l-artikolu. Kif tgħid id-dokumentazzjoni uffiċjali, dan il-modulu huwa filtru li jikkompressa t-tweġibiet bl-użu tal-metodu magħruf ta' kompressjoni gzip. Dan jiżgura li d-daqs tad-dejta trażmessa se jkun ikkompressat bin-nofs jew saħansitra aktar.

Sakemm tasal fil-qiegħ ta 'din il-kariga, ser ikollok raġuni oħra biex tikkunsidra li tuża Nginx biex isservi l-websajts u l-applikazzjonijiet tiegħek.

Installazzjoni ta 'Nginx Web Server

Nginx huwa disponibbli għad-distribuzzjonijiet moderni ewlenin kollha. Għalkemm se nużaw magna virtwali CentOS 7 (IP 192.168.0.29) għal dan l-artikolu.

L-istruzzjonijiet provduti hawn taħt se jaħdmu bi ftit (jekk hemm) modifiki f'distribuzzjonijiet oħra wkoll. Huwa preżunt li l-VM tiegħek hija installazzjoni ġdida; inkella, ikollok tiżgura ruħek li ma jkunx hemm servers tal-web oħra (bħal Apache) li jaħdmu fuq il-magna tiegħek.

Biex tinstalla Nginx flimkien mad-dipendenzi meħtieġa tiegħu, uża l-kmand li ġej:

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

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

Biex tivverifika li l-installazzjoni tlestiet b'suċċess u li Nginx jista 'jservi fajls, ibda s-server tal-web:

# systemctl start nginx
# systemctl enable nginx

u mbagħad iftaħ web browser u mur http://192.168.0.29 (tinsiex li tissostitwixxi 192.168.0.29 bl-indirizz IP jew hostname tas-server tiegħek). Għandek tara l-paġna Merħba:

Irridu nżommu f'moħħna li xi tipi ta 'fajls jistgħu jiġu kkompressati aħjar minn oħrajn. Fajls ta' test sempliċi (bħal fajls HTML, CSS, u JavaScript) jikkompressaw tajjeb ħafna filwaqt li oħrajn (fajls .iso, tarballs, u stampi, biex insemmu xi ftit) ma jagħmlux hekk, peress li huma diġà kkompressati min-natura tagħhom.

Għalhekk, huwa mistenni li l-kombinazzjoni ta 'Nginx u gzip se tippermettilna nżidu l-veloċitajiet ta' trasferiment ta 'l-ewwel, filwaqt li tal-aħħar jista' juri ftit jew xejn titjib.

Huwa wkoll importanti li wieħed iżomm f'moħħu li meta l-modulu gzip huwa attivat, il-fajls HTML DEJJEM huma kkompressati, iżda tipi oħra ta 'fajls li jinsabu komunement f'websajts u applikazzjonijiet (jiġifieri, CSS u JavaScript) mhumiex.

Ittestjar tal-Veloċitajiet tal-Websajt Nginx MINGĦAJR il-Modulu gzip

Biex tibda, ejja tniżżel mudell Bootstrap komplut, taħlita kbira ta 'fajls HTML, CSS, u JavaScript.

Wara li tniżżel il-fajl ikkompressat, aħna se nħollu fid-direttorju tal-għeruq tal-blokk tas-server tagħna (ftakar li dan huwa l-ekwivalenti Nginx tad-direttiva DocumentRoot f'dikjarazzjoni tal-host virtwali Apache):

# 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

Għandu jkollok l-istruttura tad-direttorju li ġejja ġewwa /var/www/html/tecmint:

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

Issa mur http://192.168.0.29/tecmint u kun żgur li l-paġna titgħabba b'mod korrett. Il-biċċa l-kbira tal-browser moderni jinkludu sett ta 'għodod għall-iżviluppatur. F'Firefox, tista' tiftaħha permezz tal-menu Għodda → Żviluppatur tal-Web.

Aħna partikolarment interessati fis-submenu Netwerk, li se jippermettilna nissorveljaw it-talbiet kollha tan-netwerk li għaddejjin bejn il-kompjuter tagħna u n-netwerk lokali u l-Internet.

Shortcut għall-ftuħ tal-menu Netwerk fl-għodod tal-iżviluppatur huwa Ctrl + Shift + Q. Agħfas dik il-kombinazzjoni taċ-ċwievet jew uża l-menu bar biex tiftaħha.

Peress li aħna interessati li neżaminaw it-trasferiment tal-fajls HTML, CSS, u JavaScript, ikklikkja fuq il-buttuni fil-qiegħ u aġġorna l-paġna. Fl-iskrin prinċipali se tara d-dettall tat-trasferiment tal-fajls kollha HTML, CSS, u JavaScript:

Fuq il-lemin tal-kolonna Daqs (li turi d-daqsijiet tal-fajls individwali) tara l-ħinijiet tat-trasferiment individwali. Tista' wkoll tikklikkja darbtejn fuq kwalunkwe fajl partikolari biex tara aktar dettalji fit-tab Ħinijiet.

Kun żgur li tieħu noti tal-ħinijiet murija fl-immaġni ta 'hawn fuq sabiex tkun tista' tqabbelhom mal-istess trasferiment ladarba nkunu ppermettejna l-modulu gzip.

Attivazzjoni u Konfigurazzjoni tal-Modulu gzip f'Nginx

Biex tattiva u kkonfigurat il-modulu gzip, iftaħ /etc/nginx/nginx.conf, sib il-blokk tas-server prinċipali kif muri fl-immaġni hawn taħt, u żid jew immodifika l-linji li ġejjin (tinsiex il- punt u virgola fl-aħħar jew Nginx se jirritorna messaġġ ta 'żball waqt li jerġa' jibda aktar tard!)

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

Id-direttiva gzip tixgħel jew titfi l-modulu gzip, filwaqt li gzip_types jintuża biex telenka t-tipi MIME kollha li l-modulu għandu jimmaniġġja.

Biex titgħallem aktar dwar it-tipi MIME u tara t-tipi disponibbli, mur Basics_of_HTTP_MIME_types.

Ittestjar tal-Veloċitajiet tal-Websajt Nginx Bil-Modulu ta 'Kompressjoni Gzip

Ladarba lestejna l-passi ta 'hawn fuq, ejja nibdew mill-ġdid Nginx u erġa' tagħbija l-paġna billi tagħfas Ctrl + F5 (għal darb'oħra, dan jaħdem f'Firefox, allura jekk qed tuża browser differenti ikkonsulta l-ewwel id-dokumentazzjoni korrispondenti) biex tegħleb il-cache u ejja nosservaw il-ħinijiet tat-trasferiment:

# systemctl restart nginx

It-tab tat-talbiet tan-netwerk turi xi titjib sinifikanti. Qabbel il-ħinijiet biex tara għalik innifsek, filwaqt li żżomm f'moħħok li huma t-trasferimenti bejn il-kompjuter tagħna u 192.168.0.29 (it-trasferimenti bejn is-servers ta' Google u s-CDNs huma lil hinn mill-ħtma tagħna):

Pereżempju, ejja nikkunsidraw l-eżempji ta 'trasferiment ta' fajls li ġejjin qabel/wara li nippermettu gzip. Il-ħinijiet huma mogħtija f'millisekondi:

  1. index.html (rappreżentat minn /tecmint/ fil-quċċata tal-lista): 15/4
  2. Creative.min.css: 18/8
  3. jquery.min.js: 17/7

Dan ma jġiegħlekx tħobb Nginx saħansitra aktar? Sa fejn jien konċernati, hekk!

Sommarju

F'dan l-artikolu wrejna li tista 'tuża l-modulu Nginx gzip biex tħaffef it-trasferimenti tal-fajls. Id-dokumentazzjoni uffiċjali għall-modulu gzip telenka direttivi oħra ta' konfigurazzjoni li tista' tkun trid tagħti ħarsa lejhom.

Barra minn hekk, il-websajt tal-Mozilla Developer Network għandha entrata dwar il-Monitor tan-Netwerk li tispjega kif tuża din l-għodda biex tifhem x'inhu jiġri wara l-kwinti f'talba għal netwerk.

Bħal dejjem, tħossok liberu li tuża l-formola tal-kummenti hawn taħt jekk għandek xi mistoqsijiet dwar dan l-artikolu. Aħna dejjem ħerqana li nisimgħu mingħandek!