logo

एक्स्ट्रा ब्लॉक टाइप्स (EBT) - नया लेआउट बिल्डर अनुभव❗

एक्स्ट्रा ब्लॉक टाइप्स (EBT) - स्टाइलिश, कस्टमाइज़ेबल ब्लॉक टाइप्स: स्लाइडशो, टैब्स, कार्ड्स, एकॉर्डियन्स और कई अन्य। बैकग्राउंड, DOM बॉक्स, जावास्क्रिप्ट प्लगइन्स के लिए बिल्ट-इन सेटिंग्स। आज ही लेआउट बिल्डिंग का भविष्य अनुभव करें।

डेमो EBT मॉड्यूल्स EBT मॉड्यूल्स डाउनलोड करें

❗एक्स्ट्रा पैराग्राफ टाइप्स (EPT) - नया पैराग्राफ्स अनुभव

एक्स्ट्रा पैराग्राफ टाइप्स (EPT) - एनालॉजिकल पैराग्राफ आधारित मॉड्यूल्स का सेट।

डेमो EPT मॉड्यूल्स EPT मॉड्यूल्स डाउनलोड करें

स्क्रॉल
03/10/2025, by Ivan

Varnish Cache एक वेब-एप्लिकेशन एक्सीलरेटर है, जिसे HTTP कैशिंग रिवर्स प्रॉक्सी सर्वर भी कहा जाता है। Varnish का उपयोग हज़ारों Drupal साइट्स पर किया जाता है ताकि पेज लोड परफ़ॉर्मेंस को 10-1000 गुना तक तेज़ किया जा सके, और इसे कैश टैग्स के साथ इस्तेमाल करके कैश इनवैलिडेशन को सरल बनाया जा सकता है।

बेसिक कैश टैग्स इंटिग्रेशन के लिए, आपको यह सुनिश्चित करने के लिए तीन काम करने होंगे कि Varnish, Drupal द्वारा जनरेट किए गए कैश टैग्स के साथ अच्छी तरह काम करे:

  • Varnish VCL अपडेट करें, ताकि यह BAN रिक्वेस्ट्स को सही तरह से हैंडल करे।
  • कैश टैग्स हेडर भेजें (जैसे X-Cache-Tags) हर रिक्वेस्ट के साथ, जिसमें पेज के सभी कैश टैग्स की स्पेस सेपरेटेड लिस्ट हो।
  • जब भी कंटेंट या कॉन्फ़िगरेशन अपडेट होता है, उस समय BAN रिक्वेस्ट भेजें जिसमें संबंधित कैश टैग्स हों, ताकि उन टैग्स वाले पेज एक्सपायर हो जाएँ।

Varnish VCL अपडेट करें

Symfony FOSHttpCache पैकेज में VCL बदलावों की बेहतरीन डॉक्यूमेंटेशन है, जो कैश टैग्स सपोर्ट के लिए आवश्यक हैं। लेकिन यहाँ Varnish 4.x के लिए शुरुआत करने के लिए न्यूनतम आवश्यक बदलाव दिए गए हैं:

vcl_recv के अंदर:

sub vcl_recv {
    ...
    # केवल 'purge' ACL में मौजूद IP एड्रेस से आने वाली BAN रिक्वेस्ट्स को अनुमति दें।
    if (req.method == "BAN") {
        # ऊपर जैसा ही ACL चेक:
        if (!client.ip ~ purge) {
            return (synth(403, "Not allowed."));
        }

        # X-Cache-Tags हेडर का उपयोग करते हुए ban लॉजिक।
        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."));
        }

        # एक synthetic पेज रिटर्न करें ताकि रिक्वेस्ट बैकएंड तक न जाए।
        return (synth(200, "Ban added."));
    }
}

vcl_backend_response के अंदर:

sub vcl_backend_response {
    # ban-lurker फ्रेंडली कस्टम हेडर्स सेट करें।
    set beresp.http.X-Url = bereq.url;
    set beresp.http.X-Host = bereq.http.host;
    ...
}

vcl_deliver के अंदर:

sub vcl_deliver {
    # क्लाइंट को डिलीवर करते समय ban-lurker फ्रेंडली कस्टम हेडर्स हटाएँ।
    unset resp.http.X-Url;
    unset resp.http.X-Host;
    # डेवलपमेंट में Drupal कैश टैग डिबगिंग आसान बनाने के लिए इनको कमेंट करें।
    unset resp.http.X-Cache-Tags;
    unset resp.http.X-Cache-Contexts;
    ...
}

VCL में आवश्यक बदलाव करने के बाद Varnish को ज़रूर रीस्टार्ट करें!

कैश हेडर भेजें

आप निम्नलिखित मॉड्यूल्स में से किसी एक को सक्षम कर सकते हैं ताकि Drupal एक HTTP हेडर आउटपुट करे जिसमें कैश टैग्स हों:

प्रोजेक्ट मॉड्यूल हेडर
Varnish Purger Varnish Purger Tags (varnish_purge_tags) Cache-Tags
Generic HTTP Purger Generic HTTP Tags Header (purge_purger_http_tagsheader) Purge-Cache-Tags
ध्यान दें कि 8.x-3.0-beta5 से पहले की कुछ वर्ज़न्स में Purge मॉड्यूल डिफ़ॉल्ट रूप से Purge-Cache-Tags हेडर सेट करता था, लेकिन इसे हटा दिया गया ताकि इसकी ज़िम्मेदारी सबमॉड्यूल्स की हो।

कंटेंट या कॉन्फ़िगरेशन बदलने पर BAN रिक्वेस्ट भेजें

Generic HTTP Purger मॉड्यूल का उपयोग करके, आप Purge कॉन्फ़िगरेशन पेज (admin/config/development/performance/purge) पर जाकर एक HTTP Purger जोड़ सकते हैं।

अपने Varnish सर्वर की जानकारी (होस्टनाम, पोर्ट, पाथ आदि) डालें और "Headers" कॉन्फ़िगरेशन में निम्नलिखित हेडर डालें:

  • हेडर: X-Cache-Tags
  • वैल्यू: [invalidation:expression]

एक बार जब आप यह कॉन्फ़िगरेशन सेव कर लेते हैं और cron जॉब सेटअप कर लेते हैं ताकि Purge क्यू प्रोसेस हो (drush p-queue-work), तब Varnish तुरंत पेजों को ब्लॉक करना शुरू कर देगा जैसे ही Purge क्यू BAN रिक्वेस्ट ट्रिगर करेगी!

इस डॉक्यूमेंटेशन में कुछ नोट्स निम्न स्रोतों से लिए गए हैं: