Self-hosting yechitatu-bato zviwanikwa: zvakanaka, zvakaipa, zvakaipa

Mumakore achangopfuura, mapuratifomu akawanda ekugadzirisa mapurojekiti epamberi anopa mikana yekuzviitisa kana kuita proxy yechitatu-bato zviwanikwa. Akamai anokubvumira kuseta chaiyo parameters kune ma URL anozvigadzira ega. Cloudflare ine Edge Workers tekinoroji. Fasterzine inogona nyorazve Ma URL pamapeji kuitira kuti anongedze kune wechitatu-bato zviwanikwa zviri panzvimbo huru yesaiti.

Self-hosting yechitatu-bato zviwanikwa: zvakanaka, zvakaipa, zvakaipa

Kana iwe uchiziva kuti masevhisi echitatu-bato anoshandiswa muprojekiti yako haashanduke kazhinji, uye kuti maitiro ekuaendesa kune vatengi anogona kuvandudzwa, saka unenge uri kufunga nezve proxy masevhisi akadaro. Neiyi nzira, unogona kunyatso kuunza zviwanikwa izvi padyo nevashandisi vako uye kuwana hutongi hwakakwana pamusoro pecaching yavo kudivi revatengi. Izvi, nekuwedzera, zvinokutendera kuti udzivirire vashandisi kubva kumatambudziko anokonzerwa ne "kuputsika" kwesevhisi yechitatu-bato kana kuderedzwa kwekuita kwayo.

Zvakanaka: Kuvandudzwa kwekuita

Kuzvigashira zviwanikwa zvemumwe munhu kunovandudza mashandiro nenzira iri pachena. Iyo bhurawuza haidi kuwana DNS zvakare, haidi kumisa kubatana kweTCP uye kuita TLS kubata maoko pane yechitatu-bato domain. Iwe unogona kuona kuti kuzvibata wega zviwanikwa zvemumwe munhu kunokanganisa sei kuita nekuenzanisa nhamba mbiri dzinotevera.

Self-hosting yechitatu-bato zviwanikwa: zvakanaka, zvakaipa, zvakaipa
Wechitatu zviwanikwa zvinotorwa kubva kunze zvinyorwa (zvakatorwa kubva kubva pano)

Self-hosting yechitatu-bato zviwanikwa: zvakanaka, zvakaipa, zvakaipa
Chechitatu-bato zviwanikwa zvakachengetwa munzvimbo imwechete sezvimwe zvese zvesaiti zvinhu (zvakatorwa kubva kubva pano)

Mamiriro acho anovandudzwa zvakare nenyaya yekuti bhurawuza richashandisa kugona kuwanda uye kukoshesa data kubva kuHTTP/2 yekubatanidza iyo yakatogadzwa neiyo huru domain.

Kana iwe ukasatambira wechitatu-bato zviwanikwa, saka sezvo ivo vachizotakurwa kubva kune imwe dura rakasiyana neiyo huru, ivo havagone kuiswa pamberi. Izvi zvinozoita kuti vakwikwidze mumwe nemumwe kune bandwidth yemutengi. Izvi zvinogona kukonzera kurodha nguva yezvinyorwa zvakakosha kuvaka peji iro rakareba kupfuura izvo zvingagoneke kuitika mumamiriro ezvinhu akanaka. pano taura paHTTP/2 kuisa pamberi inotsanangura zvese izvi zvakanaka.

Zvinogona kufungidzirwa kuti kushandiswa kweunhu mune zvinongedzo kune zvekunze zviwanikwa preconnect zvichabatsira kugadzirisa dambudziko. Nekudaro, kana paine akawandisa eaya malink kune akasiyana madomasi, anogona kunyatso kurodha tambo yekutaurirana panguva yakakosha.

Kana iwe uchitambira wechitatu-bato zviwanikwa iwe pachako, unogona kudzora kuti chaizvo zviwanikwa izvi zvinopihwa mutengi. Zvikurukuru, tiri kutaura pamusoro pezvinotevera:

  • Iwe unogona kuona kuti iyo data compression algorithm inonyatso kuenderana nebrowser yega yega inoshandiswa (Brotli/gzip).
  • Iwe unogona kuwedzera nguva ye caching yezviwanikwa izvo kazhinji zvisina kunyanya kureba, kunyangwe nevanonyanya kuzivikanwa vanopa (semuenzaniso, iyo inowirirana kukosha kweiyo GA tag inoiswa ku30 maminetsi).

Iwe unogona kutowedzera iyo TTL yechishandiso kuti, toti, gore nekubatanidza yakakodzera zvemukati mune yako caching manejimendi zano (URL hashes, shanduro, nezvimwewo). Tichataura pamusoro peizvi pasi apa.

▍ Kudzivirirwa kubva pakukanganiswa mukushanda kwevechitatu-bato masevhisi kana kudzima kwavo

Chimwe chinhu chinonakidza chekuzvigashira chechitatu-bato zviwanikwa ndechekuti inokutendera iwe kudzikisira njodzi dzine chekuita nekudzima kwechitatu-bato masevhisi. Ngatifungei kuti yechitatu-bato A/B yekuyedza mhinduro yauri kushandisa inoiswa sevhavha script inoremedza mumusoro chikamu chepeji. Ichi chinyorwa chinotakura zvishoma nezvishoma. Kana script inoenderana ikatadza kurodha, peji racho rinenge risina chinhu. Kana ikatora nguva yakareba kwazvo kurodha, peji yacho ichaonekwa nekunonoka kwenguva refu. Kana, ngatiti chirongwa chinoshandisa raibhurari yakatorwa kubva kune yechitatu-bato CDN sosi. Ngatimbofungidzira kuti sosi iyi yakatadza kana kuti yakavharwa mune imwe nyika. Mamiriro ezvinhu akadaro achaita kuti kutyora logic yesaiti.

Kuti uzive kuti saiti yako inoshanda sei kana imwe sevhisi yekunze isipo, unogona kushandisa chikamu cheSPOF pa webpagetest.org.

Self-hosting yechitatu-bato zviwanikwa: zvakanaka, zvakaipa, zvakaipa
SPOF chikamu pane webpagetest.org

▍ Zvakadini nezvinetso necaching yezvinhu mumabhurawuza? (chido: ingano)

Unogona kufunga kuti kushandisa maCDN eruzhinji kwaizongotungamira kuita zvirinani zviwanikwa, sezvo masevhisi aya aine network yemhando yepamusoro uye akagoverwa pasirese. Asi zvinhu zvose zviri kunyanya kuoma zvishoma.

Ngatitii tine masaiti akati wandei akasiyana: webhusaiti1.com, webhusaiti2.com, webhusaiti3.com. Ese emasaiti aya anoshandisa raibhurari yejQuery. Isu tinozvibatanidza navo tichishandisa CDN, semuenzaniso - googleapis.com. Unogona kutarisira kuti bhurawuza kudhawunirodha uye cache raibhurari kamwe chete, uye wozoishandisa pane ese matatu masaiti. Izvi zvinogona kuderedza mutoro pane network. Zvichida izvi zvinokutendera kuti uchengetedze mari kune imwe nzvimbo uye ubatsire kuvandudza zviwanikwa. Kubva pakuona kwekuita, zvinhu zvose zvinotaridzika zvakasiyana. Semuenzaniso, Safari ine chinhu chinonzi Njere Kuchengetedza Kuchengetedza: Iyo cache inoshandisa makiyi maviri zvichienderana nekwakabva gwaro uye kunobva yechitatu-bato resource. pano chinyorwa chakanaka pamusoro penyaya iyi.

zvidzidzo zvekare Yahoo ΠΈ Facebook, pamwe chete nezvazvino uno kudzidza Paul Calvano, ratidza kuti zviwanikwa hazvina kuchengetwa mubrowser cache kwenguva yakareba sezvatingatarisira: "Pane mukaha wakakomba pakati penguva yekuchengetera yezviwanikwa zvepurojekiti uye yechitatu-bato. Tiri kutaura nezve CSS uye mafonti ewebhu. Sezvineiwo, 95% yemafonti ekuzvarwa ane cache hupenyu hweinopfuura vhiki, nepo makumi mashanu muzana echitatu-bato mafonti ane cache hupenyu husingasviki svondo! Izvi zvinopa vanogadzira webhu chikonzero chinomanikidza chekutora mafaira emafonti ivo pachavo! "

Nekuda kweizvozvo, kana iwe uchitambira zvevamwe vanhu, hauzocherechedze chero nyaya dzekuita dzinokonzerwa nebrowser caching.

Iye zvino zvatafukidza masimba echitatu-bato rekuzvibata, ngatitaure nezve nzira yekutaurira kuita kwakanaka kweiyi nzira kubva kune yakaipa.

Iyo Yakashata: Dhiyabhorosi ari mune zvese

Kufambisa zviwanikwa zvevechitatu kune yako dhomeini hazvigone kuitwa otomatiki pasina kuona kuti zviwanikwa zvakadaro zvakachengetwa zvakanaka.

Imwe yematambudziko makuru pano ndeye caching nguva. Semuenzaniso, ruzivo rwevhezheni runosanganisirwa mumazita echitatu-bato script seizvi: jquery-3.4.1.js. Iyo faira yakadaro haizoshanduki mune ramangwana, uye nekudaro izvi hazvizokonzeri matambudziko necaching yayo.

Asi kana imwe shanduro yekushandura ikasashandiswa kana uchishanda nemafaira, zvinyorwa zvakachengetwa, izvo zviri mukati zvinoshanduka apo zita refaira richiramba risina kuchinjwa, rinogona kupera nguva. Iri rinogona kunge riri dambudziko rakakomba, sezvo iro, semuenzaniso, risingabvumire otomatiki kuchengetedza zvigamba kuti zviwedzerwe kune zvinyorwa izvo vatengi vanoda kugamuchira nekukurumidza sezvinobvira. Mugadziri achafanirwa kuita nhamburiko yekuvandudza zvinyorwa zvakadaro mu cache. Mukuwedzera, izvi zvinogona kukonzera kukanganisa kwekushanda nekuda kwekuti kodhi inoshandiswa pamutengi kubva kune cache inosiyana kubva kune yazvino vhezheni yekodhi iyo sevha chikamu chepurojekiti chakagadzirirwa.

Ichokwadi, kana tichitaura nezvezvinhu zvinogadziridzwa nguva nenguva (matag maneja, mhinduro dzeA/B bvunzo), ipapo caching iwo uchishandisa maCDN maturusi ibasa rinogona kugadziriswa, asi rakanyanya kuoma. Masevhisi akaita seCommanders Act, tag manejimendi mhinduro, shandisa webhooks paunenge uchiburitsa shanduro nyowani. Izvi zvinokupa iwe kugona kumanikidza cache flush paCDN, kana, zvirinani zvakadaro, kugona kumanikidza hashi kana URL update.

▍Adaptive kuendesa zvinhu kune vatengi

Uye zvakare, kana tichitaura nezve caching, isu tinofanirwa kufunga nezve iyo caching marongero anoshandiswa paCDN angave asina kukodzera kune mamwe echitatu-bato zviwanikwa. Semuyenzaniso, zviwanikwa zvakadaro zvinogona kushandisa tekinoroji yekufembedza (adaptive serving) kushandira mabhurawuza chaiwo ane shanduro dzemukati dzakanyatsogadzirirwa iwo mabhurawuza. Aya matekinoroji anovimba neanogara achitaurwa, kana dhatabhesi inounganidza HTTP musoro weruzivo, kuona kugona kwebrowser. User-Agent. Kana vangoziva kuti ndeipi browser yavari kubata nayo, vanoipa zvinhu zvakagadzirirwa iyo.

Pano unogona kurangarira masevhisi maviri. Yekutanga ndeye googlefonts.com. Yechipiri ndeye polyfill.io. Iyo Google Fonts sevhisi inopa, kune imwe sosi, akasiyana CSS kodhi, zvichienderana nekugona kwebrowser (kupa zvinongedzo kune woff2 zviwanikwa uchishandisa unicode-range).

Heano mhinduro dzemimwe mibvunzo yeGoogle Fonts yakagadzirwa kubva kumabhurawuza akasiyana.

Self-hosting yechitatu-bato zviwanikwa: zvakanaka, zvakaipa, zvakaipa
Mhinduro yemubvunzo yeGoogle Fonts kubva kuChrome

Self-hosting yechitatu-bato zviwanikwa: zvakanaka, zvakaipa, zvakaipa
Mhinduro yemubvunzo yeGoogle Fonts kubva kuIE10

Polyfill.io inopa bhurawuza chete polyfills yainoda. Izvi zvinoitwa nokuda kwezvikonzero zvekuita.

Semuenzaniso, ngatitarisei kuti chii chinoitika kana iwe uchimhanyisa chikumbiro chinotevera kubva kumabhurawuza akasiyana: https://polyfill.io/v3/polyfill.js?features=default

Mukupindura kuchikumbiro chakadai chakaitwa kubva kuIE10, 34 KB yedata ichagamuchirwa. Uye mhinduro kwairi, yakaitwa kubva kuChrome, ichave isina chinhu.

Kutsamwa: Zvimwe zvinofungwa nezvakavanzika

Iyi poindi ndeyekupedzisira kurongeka, asi isinganyanyi kukosha. Icho chiripo ndechekuti kuzvibata-yega kwechitatu-bato zviwanikwa pane iyo huru domain yepurojekiti kana pane yayo subdomain inogona kukanganisa kuvanzika kwevashandisi uye kukanganisa purojekiti huru yewebhu.

Kana system yako yeCDN isina kurongeka zvakanaka, unogona kupedzisira watumira makuki edomeini yako kune yechitatu-bato sevhisi. Kana kusefa kwakaringana kusiri kurongeka padanho reCDN, ipapo makuki emusangano wako, asingawanzo kushandiswa muJavaScript (ine httponly), inogona kutumirwa kune imwe nyika.

Izvi ndizvo chaizvo zvinogona kuitika nema trackers seEulerian kana Criteo. Chechitatu-bato trackers vanogona kunge vakaisa yakasarudzika identifier mucookie. Kana ivo vaive chikamu chezvinyorwa zvesaiti, vaigona kuverenga identifier nekufunga kwavo apo mushandisi aishanda neakasiyana ewebhu zviwanikwa.

Mazuva ano, mabhurawuza mazhinji anosanganisira dziviriro kubva kurudzi urwu rwemaitiro e tracker. Nekuda kweizvozvo, trackers ikozvino inoshandisa tekinoroji CNAME Kuvhara, vachiita sezvinyorwa zvavo zvezvirongwa zvakasiyana-siyana. Sezvineiwo, vatevedzeri vanopa varidzi vesaiti kuti vawedzere CNAME kune yavo marongero eimwe domain, iyo kero inowanzoita senge isina kurongeka seti yemavara.

Kunyangwe zvisingakurudzirwe kuita makuki ewebhusaiti kuwanikwa kune ese subdomain (semuenzaniso - * .website.com), mawebhusaiti mazhinji anoita izvi. Muchiitiko ichi, makuki akadaro anotumirwa otomatiki kune yakavanzika yechitatu-bato tracker. Nekuda kweizvozvo, hatichakwanisa kutaura nezve chero zvakavanzika.

Zvakare, chinhu chimwe chete chinoitika neHTTP misoro Client-Mazano, iyo inotumirwa chete kune iyo huru domain, sezvo inogona kushandiswa kugadzira digital fingerprint mushandisi. Ita shuwa kuti sevhisi yeCDN yaunoshandisa inosefa iyi misoro nemazvo.

Migumisiro

Kana iwe uri kuronga kuita yekuzvigashira yechitatu-bato zviwanikwa munguva pfupi, rega ndikupe mamwe matipi:

  • Gamuchira ako akakosha eJS maraibhurari, mafonti uye CSS mafaera. Izvi zvinoderedza njodzi yekutadza kwesaiti kana kuderedzwa kwekuita nekuda kwechishandiso chakakosha kune saiti kusavapo nekuda kwekukanganisa kwesevhisi yechitatu.
  • Usati wachengeta zviwanikwa zvebato rechitatu paCDN, ita shuwa kuti imwe mhando yeshanduro sisitimu inoshandiswa pakudoma mafaera avo, kana kuti iwe unokwanisa kubata hupenyu hwezviwanikwa izvi nemaoko kana otomatiki kugadzirisa cache yeCDN paunenge uchiburitsa vhezheni itsva ye. script.
  • Ngwarira zvakanyanya nezveCDN yako, proxy server, uye cache marongero. Izvi zvinokutendera kuti udzivise purojekiti yako kana misoro kubva kutumirwa makuki Client-Hints mabasa echitatu.

Vanodiwa vaverengi! Iwe unotambira zvinhu zvevamwe vanhu pamaseva ako akanyanya kukosha pakushanda kwemapurojekiti ako?

Self-hosting yechitatu-bato zviwanikwa: zvakanaka, zvakaipa, zvakaipa
Self-hosting yechitatu-bato zviwanikwa: zvakanaka, zvakaipa, zvakaipa

Source: www.habr.com

Voeg