logo

Dodatni tipovi blokova (EBT) - Novo iskustvo rada sa Layout Builder-om❗

Dodatni tipovi blokova (EBT) – stilizovani, prilagodljivi tipovi blokova: slajdšouvi, kartice sa tabovima, kartice, akordeoni i mnogi drugi. Ugrađena podešavanja za pozadinu, DOM Box, javascript dodatke. Iskusite budućnost kreiranja rasporeda već danas.

Demo EBT moduli Preuzmite EBT module

❗Dodatni tipovi pasusa (EPT) – Novo iskustvo rada sa pasusima

Dodatni tipovi pasusa (EPT) – analogni skup modula zasnovan na pasusima.

Demo EPT moduli Preuzmite EPT module

Scroll
19/06/2025, by Ivan

Varnish Cache je akcelerator web-aplikacija, poznat i kao keširajući reverzni proxy HTTP server. Varnish se koristi na hiljadama Drupal sajtova za povećanje performansi učitavanja stranica od 10 do 1000 puta, i može se koristiti sa keš tagovima kako bi se olakšalo poništavanje keša.

Za osnovnu integraciju keš tagova potrebno je učiniti tri stvari kako biste bili sigurni da Varnish pravilno radi sa keš tagovima koje generiše Drupal:

  • Ažurirajte Varnish VCL tako da pravilno obrađuje BAN zahteve.
  • Šaljite zaglavlje keš tagova (npr. X-Cache-Tags) sa svakim zahtevom, koje sadrži listu svih keš tagova stranice odvojenih razmacima.
  • Šaljite BAN zahtev sa odgovarajućim keš tagovima svaki put kada se sadržaj ili konfiguracija ažuriraju i ističe važenje stranica sa tim tagovima.

Ažuriranje Varnish VCL

Symfony paket FOSHttpCache poseduje odličnu dokumentaciju o VCL izmenama potrebnim za podršku keš tagovima, ali evo minimalnih neophodnih izmena VCL za početak rada (za Varnish 4.x):

Unutar vcl_recv:

sub vcl_recv {
    ...
    # Dozvoli BAN zahteve samo sa IP adresa u ACL 'purge'.
    if (req.method == "BAN") {
        # Isti ACL provera kao iznad:
        if (!client.ip ~ purge) {
            return (synth(403, "Not allowed."));
        }

        # Logika za BAN, koristeći X-Cache-Tags zaglavlje.
        if (req.http.X-Cache-Tags) {
            ban("obj.http.X-Cache-Tags ~ " + req.http.X-Cache-Tags);
        }
        else {
            return (synth(403, "X-Cache-Tags header missing."));
        }

        # Generiši sintetičku stranicu da zahtev ne ide na backend.
        return (synth(200, "Ban added."));
    }
}

Unutar vcl_backend_response:

sub vcl_backend_response {
    # Postavi ban-lurker prijateljska prilagođena zaglavlja.
    set beresp.http.X-Url = bereq.url;
    set beresp.http.X-Host = bereq.http.host;
    ...
}

Unutar vcl_deliver:

sub vcl_deliver {
    # Ukloni ban-lurker prijateljska prilagođena zaglavlja pre isporuke klijentu.
    unset resp.http.X-Url;
    unset resp.http.X-Host;
    # Komentariši ove radi lakšeg debugovanja keš tagova u Drupal-u tokom razvoja.
    unset resp.http.X-Cache-Tags;
    unset resp.http.X-Cache-Contexts;
    ...
}

Obavezno restartujte Varnish nakon što unesete izmene u VCL!

Slanje zaglavlja keša

Možete uključiti jedan od sledećih modula da biste omogućili Drupalu da šalje HTTP zaglavlje koje sadrži keš tagove:

Projekat Modul Zaglavlje
Varnish Purger Varnish Purger Tags (varnish_purge_tags) Cache-Tags
Generic HTTP Purger Generic HTTP Tags Header (purge_purger_http_tagsheader) Purge-Cache-Tags
Napomena: u nekim verzijama pre 8.x-3.0-beta5 modul Purge je automatski konfigurisao zaglavlje Purge-Cache-Tags, ali je to uklonjeno jer je odlučeno da za to budu odgovorni podmoduli.

Slanje BAN zahteva prilikom promene sadržaja ili konfiguracije

Korišćenjem Generic HTTP Purger modula, možete otići na stranicu konfiguracije Purge (admin/config/development/performance/purge) i dodati HTTP Purger.

Unesite podatke vašeg Varnish servera (hostname, port, putanju itd.) i u polju za konfiguraciju "Headers" unesite zaglavlje sa sledećom konfiguracijom:

  • Zaglavlje: X-Cache-Tags
  • Vrednost: [invalidation:expression]

Kada sačuvate ovu konfiguraciju za purge i podesite cron zadatak za procesiranje reda purge (drush p-queue-work), Varnish će početi da blokira stranice čim red purge pokrene BAN zahteve!

Neki delovi ove dokumentacije su adaptirani iz sledećih izvora:

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.