14 maaliskuun, 2022

Lakan välimuistipalvelimen asentaminen-Swappit

vilkkaasti liikennöidyillä verkkosivustoilla on tarjottava samaa sisältöä useita kertoja eri käyttäjille. Riippuen sovelluksesta, se voi olla todella kallista (resursseja puhuminen) käsitellä kaikki sovelluksen logiikan aina, kun käyttäjä pyytää web-sivun. Tässä on, jos palvelimen välimuistiin tulee, voit vain tallentaa väliaikaisen kopion sisällöstä muistiin ja palvella tätä sisältöä kaikille käyttäjille.

lakka on loistava välimuistaamaan sisältöä palvelinpuolella. Pohjimmiltaan sinun pitäisi välimuistin HTML-sisältöä, mutta voit myös välimuistitiedostot: CSS, JS, kuvat, asiakirjat.

kuulostaa hyvältä, mutta totuus on, että oletuksena lakka ei tee mitään, tai ainakin voit olla tuhlaamassa tämän ohjelmiston etuja, ja dokumentaatio ei auta, joten olen kirjoittanut tämän artikkelin, joten voit saada eniten hyötyä lakka. Aion selittää missä ja miten määrittää, testata ja ottaa käyttöön lakka välimuistipalvelimen sovelluksen.

demonstrointitarkoituksiin sanotaan, että sovelluksessamme ja välimuistipalvelimissamme on 2 palvelinilmaisinta, joilla on seuraavat paikalliset IP-osoitteet:

  • sovelluspalvelin: 192.168.1.2
  • välimuistipalvelin: 192.168.1.3

Asenna Varnish Cache Server

tätä artikkelia varten aiomme asentaa Ubuntu server 16.04: n Varnish 4.0: lla. Jos haluat asentaa lakan, sinun tarvitsee vain suorittaa:

sudo apt install varnish

asennan lakka 4.0: n, ja tästä lähtien kiinnität erityistä huomiota 2 tiettyyn tiedostoon:/etc/default/varnishja /etc/varnish/default.vcl

Backend configuration

ensimmäinen asia, joka sinun täytyy tehdä, on määrittää backend tai ohjeistaa lakka, missä web-sovellus elää:

  • mikä on palvelimen nimi tai IP-osoite?
  • mikä on satama?

määrittääksesi, että sinun täytyy mennä päivittämään tiedosto /etc/varnish/default.vclja löytää seuraava osio, joka määritetään esimerkkitarkoitukseemme näin:

backend default { .host = "192.168.1.2"; .port = "8080"; .first_byte_timeout = 60s; .connect_timeout = 300s;}

se neuvoo lakka kuunnella sovelluksen käynnissä IP 192.168.1.2 ja portti 8080.

Aseta lakan daemon

ensimmäiseksi määrittelemään, missä lakka juoksee. Jätämme sen käyntiin oletusporttiin 6081. On hyvin tavallista ajaa tätä taustaprosessia porteilla 80 ja 443 SSL: lle, mutta haluamme mieluummin laittaa Nginxin eteen ja jättää sen osallistumaan liikenteeseen.

muistin osalta lakka-tyhjä asennus suoritetaan 256MB muistia, joka voisi riittää joillekin sovelluksille, mutta korkean liikenteen sovellukset, se ei ehkä riitä, ja enemmän, jos olet varannut oma palvelin välimuistiin vain.

voit muuttaa sitä:

/etc/default/varnish

Etsi seuraava osio:

DAEMON_OPTS="-a :6081 \-T localhost:6082 \-f /etc/varnish/default.vcl \-S /etc/varnish/secret \-s malloc,256m"

päivittääksesi RAM-muistin määrän, vaihdat viimeisen rivin, jossa lukee 256m ja päivität vaaditun arvon, minun tapauksessani haluan omistaa 3 Gt RAM-muistia lakalle, joten lohko näyttää:

DAEMON_OPTS="-a :6081 \-T localhost:6082 \-f /etc/varnish/default.vcl \-S /etc/varnish/secret \-s malloc,3G"

Vahvista, että se on käynnissä oikealla kokoonpanolla

Vahvista, että se on käynnissä odotetusti, tarkista prosessi ps aux | grep varnishja sinun pitäisi nähdä jotain:

/usr/sbin/varnishd -j unix,user=vcache -F -a :6081 -T :6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,3G

Fix Varnish startup daemon joissakin Ubuntu-asennuksissa

olemme havainneet vian, jossa palvelu ei noudata varnish-tiedostossa määriteltyjä ohjeita ja saatat joutua muokkaamaan käynnistyspalvelua.

avataksesi ja muokataksesi tiedostoa

/lib/systemd/system/varnish.service

ja näet jotain tällaista:

Description=Varnish HTTP acceleratorDocumentation=https://www.varnish-cache.org/docs/4.1/ man:varnishdType=simpleLimitNOFILE=131072LimitMEMLOCK=infinityExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :6081 -T :6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256MExecReload=/usr/share/varnish/reload-vclProtectSystem=fullProtectHome=truePrivateTmp=truePrivateDevices=trueWantedBy=multi-user.target

jotta se toimisi, sinun täytyy päivittää linjan sisällä oleva osio ExecStart ja korvata se vaadituille määrityksille.:

ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :6081 -T :6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,3G

kun olet tehnyt, että, sinun täytyy ladata uudelleen service daemon: systemctl daemon-reload ja käynnistä sitten lakka uudelleen.

kuinka määrittää välimuistin tyhjentäminen

Lakkavälimuistin tyhjentämiseen on 2 tapaa:

  • Käynnistä lakan palvelu uudelleen.
  • lähetä Puhdistuspyyntö lakan palvelimelle.

uudelleenkäynnistys lakka kyse on vain palvelun uudelleenkäynnistämisestä:

sudo service varnish restart

mutta mitä todella tarvitsemme on pystyä lähettämään puhdistus pyynnön sovelluspalvelimen. Se voidaan saavuttaa ohjeistamalla palvelinta puhdistamaan tietty polku tai ne kaikki. Kiharaa käyttämällä pyyntö näyttäisi:

curl -X PURGE http://192.168.1.3:6181

oletusarvoisesti lakka ei salli poistopyyntöä ulkoiselta palvelimelta, joten pyynnöt on sallittava sovelluspalvelimelta. Voit tehdä niin, mene ja muokkaa /etc/varnish/default.vclja etsi puhdistus-osio, jossa sinun täytyy lisätä sovelluspalvelimen IP-osoite:

acl purge { "localhost"; "127.0.0.1"; "192.168.1.2"/24;}

kuinka debugata puhdistus

sinun on vahvistettava, että kaikki toimii oikein. Voit tehdä, että, voit käyttää seuraavaa komentoa:

varnishlog -g request -q 'ReqMethod eq "PURGE"'

sitten voit lähettää PUHDISTUSPYYNNÖN ja sinun pitäisi nähdä jotain tällaista vahvistaaksesi, että PUHDISTUSPYYNTÖ vastaanotettiin:

* << Request >> 1179851- Begin req 1179850 rxreq- ReqStart 192.168.195.197 39700- ReqMethod PURGE- ReqURL /.*- ReqProtocol HTTP/1.1- ReqHeader Host: swapps.com- ReqHeader User-Agent: W3 Total Cache- ReqHeader Connection: close- ReqHeader X-Forwarded-For: 192.168.195.197- VCL_call RECV- Timestamp Process: 1531199642.768541 0.000094 0.000094- RespHeader Date: Tue, 10 Jul 2018 05:14:02 GMT- RespHeader Server: Varnish- RespHeader X-Varnish: 1179851- RespProtocol HTTP/1.1- RespStatus 200- RespReason OK- RespReason Purged- End

a 200 OK tila tarkoittaa, että kaikki meni hyvin ja lakka on tyhjentänyt pyydetyn URL-osoitteen välimuistin, ja sinulla pitäisi olla kaikki mitä tarvitset sisällön välimuistin aloittamiseen palvelimellasi.

seuraava vaihe, Jos et ole tehnyt, on määrittää säännöt siitä, mitä sisältöä haluat tallentaa ja mitä ei, mutta se on toisen blogikirjoituksen aihe ja se riippuu suuresti käytetystä sovelluksesta, kehyksestä tai CMS: stä.

Vastaa

Sähköpostiosoitettasi ei julkaista.