2012-09-27 3 views
5

क्लाउडफ्लेयर के साथ आपकी PHP साइट पर कैश हेडर का उपयोग करना चाहिए ताकि "Always Online" काम करता है और आपकी छवियों को उनके सीडीएन द्वारा कैश किया जाता है?क्लाउडफ्लेयर के साथ आपकी PHP साइट पर कैश हेडर का उपयोग करना चाहिए ताकि "हमेशा ऑनलाइन" काम करता हो?

क्लाउडफ्लेयर का दस्तावेज अत्याचारी है, और उनकी सहायता टीम को पता नहीं लगता है।

उत्तर

1

आमतौर पर, आपको कुछ भी करने की आवश्यकता नहीं है - अधिकांश "सामान्य" वेब सर्वर उचित स्थिर कैश हेडर के साथ स्थिर सामग्री प्रदान करेंगे। हालांकि, अगर आप स्वयं को निर्दिष्ट कर रहे हैं या किसी कारण से आपका सर्वर हेडर भेज रहा है जो स्थैतिक सामग्री को कैश नहीं किया जाता है, तो आप किसी भी शीर्षलेख को ओवरराइड या निकालना चाहते हैं जो सामग्री को कैश होने से रोक रहा है।

एक प्रोग्राम का उपयोग करें जो आपकी सामग्री के हेडर (फ़ायरफ़ॉक्स में फ़ायरबग का "नेट" टैब, वेबसाइट http://web-sniffer.net/ या इसी तरह) देख सकता है ताकि यह देखने के लिए कि आपकी सामग्री में वर्तमान में कौन सी शीर्षलेख है। "कैश-कंट्रोल" और "एक्सपेयर" जैसी चीजों की जांच करें। यदि सामग्री में कैश नियंत्रण हेडर कैशिंग को रोक रहा है या पहले से ही समाप्त हो चुका है, तो यह शायद क्लाउडफ्लेयर (और कोई अन्य कैश) को कैशिंग करने से रोक देगा, और आपको उन्हें हटाने या बदलने की आवश्यकता होगी।

एक बहुत ही सामान्य नियम के रूप में, कुछ कैश किए जाने की अनुमति देने के लिए, भविष्य में कुछ का समय समाप्त हो गया है, और अधिकतम उम्र के साथ सार्वजनिक रूप से कैश-कंट्रोल = भविष्य में कुछ समय, हालांकि हेडर भेजें आप जो सेवा कर रहे हैं, उस ग्राहक पर निर्भर करेगा, आप किस सर्वर का उपयोग कर रहे हैं, ग्राहक क्या है, आदि

विभिन्न कैश हेडर सीखने और समझने के बिना सबसे आसान तरीका शायद कुछ देखने के लिए http://web-sniffer.net/ का उपयोग करना है कैश की गई अन्य सामग्री, और इसके शीर्षलेखों की प्रतिलिपि बनाएँ। उदाहरण के लिए, http://web-sniffer.net/?url=ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js

ध्यान दें कि हमेशा मेरे अनुभव में हमेशा ऑनलाइन काम नहीं करता है।

// set the most basic caching headers in PHP (cache for 1 month) 
header('Cache-Control: public'); 
header('Expires: '.gmdate('D, d M Y H:i:s', strtotime('+1 month')).' GMT'); 

एक संक्षिप्त स्पष्टीकरण के लिए http://hardanswers.net/dynamic-webpage-caching देखें।

1

कैश-कंट्रोल के रूप में 'सार्वजनिक' का उपयोग करना मेरे लिए एक समस्या थी, क्योंकि मेरे अधिकांश पृष्ठ बहुत गतिशील (एक webshop) हैं। यही कारण है कि मैंने केवल क्लाउडफ्लेयर को कैश करने के लिए कहा था।

क्लाउडफ्लेयर उपयोगकर्ता एजेंट के रूप में Mozilla/5.0 (compatible; CloudFlare-AlwaysOnline/1.0; +http://www.cloudflare.com/always-online) का उपयोग करता है। आप क्लाउडफ्लेयर को अपने पृष्ठों को PHP या .htaccess (कैड मार्टिन के समाधान देखें) के साथ कैश करने के लिए बता सकते हैं, लेकिन अन्य आगंतुकों को बताएं कि आपके पृष्ठों को कैश न करें।

3

यदि आप हमेशा ऑनलाइन (और हमारे बहुत सारे कैशिंग) को ठीक से काम करना चाहते हैं, तो आप निश्चित रूप से कोई कैश और निजी शीर्षलेख नहीं चाहते हैं।

"आपकी छवियों को उनके सीडीएन द्वारा कैश किया जाता है?" हम फ़ाइल एक्सटेंशन द्वारा स्वचालित रूप से ऑन-साइट संसाधनों को कैश करते हैं (हम स्पष्ट रूप से फ़्लिकर या फेसबुक विगेट्स जैसे ऑफ-साइट संसाधनों को कैश नहीं करेंगे)।

नोट: हमेशा ऑनलाइन कुछ सीमाएं होती हैं & उन सभी सीमाओं को हमारे दस्तावेज़ (सर्वर प्रतिक्रिया कोड इत्यादि) में उल्लिखित किया गया है। यदि आपने हाल ही में क्लाउडफ्लारे में साइट को भी जोड़ा है, तो वास्तव में प्रदर्शित करने के लिए कैश में कुछ भी नहीं होगा (हमेशा ऑनलाइन क्रॉलर विशिष्ट समय पर बाहर जाता है)।

हमेशा ऑनलाइन के भविष्य में पुनरावृत्ति उपयोगकर्ताओं को विशिष्ट पृष्ठों को "पिन" करने की अनुमति देगा, जो (उम्मीद है) तस्वीरों के ठीक नीचे हमारे पास कुछ सीमाएं प्राप्त करेंगे।

+0

क्या 'सेट-कुकी' हेडर हमेशा पृष्ठ को कैशिंग करने से ऑनलाइन रोक देगा?मैंने यूआरएल रिवाइट का उपयोग करके अपनी आईआईएस-होस्टेड साइट पर विभिन्न कैश हेडर जोड़ने की कोशिश की, लेकिन कुछ भी मदद नहीं करता है। यूआरएल रिवाइट हेडर को नहीं हटा सकता है, यह केवल इसे एक खाली स्ट्रिंग बना सकता है, इसलिए मुझे यकीन नहीं है कि खाली 'सेट-कुकी' समस्या है या कुछ और है। – jwalker

संबंधित मुद्दे