2015-11-12 9 views
5

मीडियाविकी साइट को तेज़ी से बढ़ाने के लिए जिसमें बहुत सारे टेम्पलेट्स का उपयोग किया जाता है लेकिन अन्यथा बहुत अधिक स्थिर सामग्री होती है जब टेम्पलेट्स ने अपनी नौकरियां की हैं, मैं एक स्क्विड सेट करना चाहता हूं सर्वर देखसभी मीडिया के साथ भरने के लिए मीडियाविकी स्क्विड कैश को बल दें

https://www.mediawiki.org/wiki/Manual:PurgeList.php

और

https://www.mediawiki.org/wiki/Manual:Squid_caching

और फिर एक स्क्रिप्ट w कर का उपयोग करके विद्रूप सर्वर के कैश "स्वचालित रूप से" भरने Mediawiki के सभी पृष्ठों को हिट करने वाले कॉल प्राप्त करें/कर्ल करें। मेरा निष्कर्ष यह होगा कि इस प्रक्रिया के बाद प्रत्येक पृष्ठ स्क्विड कैश में होता है (यदि मैं इसे काफी बड़ा बनाता हूं) और फिर प्रत्येक एक्सेस स्क्विड द्वारा की जाएगी।

मुझे यह काम कैसे मिलेगा? ईजी .:

  1. मैं अपनी कॉन्फ़िगरेशन कैसे देखूं?
  2. मुझे कैसे पता चलेगा कि स्मृति की कितनी आवश्यकता है?
  3. मैं कैसे जांच सकता हूं कि पृष्ठ squid3 कैश में हैं?

क्या मैं इतनी कोशिश की अब तक

मैं का उपयोग कर व्यंग्य स्थापित करने के लिए कैसे जानने के द्वारा शुरू किया:

और

मैं अपने आईपी पते xx.xxx.xxx.xxx (यहाँ नहीं बताया) पता लगा ifconfig eth0 के माध्यम से /etc/squid3/squid.conf में

मैं डाल

http port xx.xxx.xxx.xxx:80 transparent vhost defaultsite=XXXXXX 
cache_peer 127.0.0.1 parent 80 3130 originserver 

acl manager proto cache_object 
acl localhost src 127.0.0.1/32 

# Allow access to the web ports 
acl web_ports port 80 
http_access allow web_ports 

# Allow cachemgr access from localhost only for maintenance purposes 
http_access allow manager localhost 
http_access deny manager 

# Allow cache purge requests from MediaWiki/localhost only 
acl purge method PURGE 
http_access allow purge localhost 
http_access deny purge 

# And finally deny all other access to this proxy 
http_access deny all 

तब मैं कॉन्फ़िगर किया गया मेरी apache2 सर्वर

# /etc/apache2/sites-enabled/000-default.conf 
Listen 127.0.0.1:80 

मैं

०१२३५१६४१० जोड़ा
$wgUseSquid = true; 
$wgSquidServers = array('xx.xxx.xxx.xxx'); 
$wgSquidServersNoPurge = array('127.0.0.1'); 

मेरी स्थानीय सेटिंग्स में।php

तब मैं apache2 को पुनः आरंभ और

service squid3 restart 

साथ squid3 शुरू कर दिया और

wget --cache=off -r http://XXXXXX/mediawiki 

परिणाम के साथ एक प्रथम पहुँच प्रयास किया है:

Resolving XXXXXXX (XXXXXXX)... xx.xxx.xxx.xxx 
Connecting to XXXXXXX (XXXXXXX|xx.xxx.xx.xxx|:80... failed: Connection refused. 

उत्तर

0

अपाचे 2.x मान लिया जाये ।

स्क्विड संबंधित नहीं होने पर, आप केवल अपाचे मॉड्यूल का उपयोग करके इसे प्राप्त कर सकते हैं। यहां mod_cache पर एक नज़र डालें: https://httpd.apache.org/docs/2.2/mod/mod_cache.html

आप इसे आसानी से अपने अपाचे कॉन्फ़िगरेशन में जोड़ सकते हैं और अपाचे से प्रस्तुत सामग्री की डिस्क कैशिंग करने के लिए कह सकते हैं।

आपको यह सुनिश्चित करने की ज़रूरत है कि आपकी सामग्री के परिणामस्वरूप PHP प्रतिक्रिया में उचित कैश समाप्ति जानकारी हो, मीडियाविकि को आपके लिए इसका ख्याल रखना चाहिए।

ऐसी कैश परत जोड़ने से वांछित परिणाम नहीं हो सकता है क्योंकि इस परत को पता नहीं है कि कोई पृष्ठ बदल गया है या नहीं, कैश प्रबंधन यहां मुश्किल है और केवल वास्तविक सामग्री के लिए उपयोग किया जाना चाहिए।

उबंटू:

a2enmod cache cache_disk 

अपाचे विन्यास:

CacheRoot /var/cache/apache2/mod_disk_cache 
CacheEnable disk/

मैं हर पृष्ठ को एक्सेस करके अपने कैश पूर्व भरने की सिफारिश नहीं होगा। यह मूल्यवान स्थान/स्मृति लेने के लिए केवल निष्क्रिय (अक्सर उपयोग नहीं किया जाता) पृष्ठों का कारण बनता है। तुम अब भी ऐसा करना चाहते हैं, तो आप wget को देखो हो सकता है:

Description from: http://www.linuxjournal.com/content/downloading-entire-web-site-wget 
$ wget \ 
    --recursive \ 
    --no-clobber \ 
    --page-requisites \ 
    --html-extension \ 
    --convert-links \ 
    --restrict-file-names=windows \ 
    --domains website.org \ 
    --no-parent \ 
     www.website.org/tutorials/html/ 

This command downloads the Web site www.website.org/tutorials/html/. 

The options are: 

    --recursive: download the entire Web site. 

    --domains website.org: don't follow links outside website.org. 

    --no-parent: don't follow links outside the directory tutorials/html/. 

    --page-requisites: get all the elements that compose the page (images, CSS and so on). 

    --html-extension: save files with the .html extension. 

    --convert-links: convert links so that they work locally, off-line. 

    --restrict-file-names=windows: modify filenames so that they will work in Windows as well. 

    --no-clobber: don't overwrite any existing files (used in case the download is interrupted and 
    resumed). 

एक बेहतर विकल्प: memcached

मीडियाविकि भी डेटा और टेम्पलेट्स के लिए एक बहुत तेज में स्मृति कैशिंग सेवा के रूप में Memcached के उपयोग का समर्थन केवल। यह स्क्विड या अपाचे mod_cache जैसे वेबसाइट-व्यापी कैश के रूप में क्रूर नहीं है। मीडियाविकि मेमकैच का प्रबंधन करेगा ताकि किसी भी बदलाव को कैश स्टोर में तुरंत दिखाई दे, जिसका अर्थ है कि आपकी सामग्री हमेशा वैध होगी।

मीडियाविकि यहाँ पर स्थापना के निर्देश कृपया देखें: https://www.mediawiki.org/wiki/Memcached

मेरे सिफारिश Memcached स्थापित करने के लिए इस कार्य के लिए mod_cache या विद्रूप अपाचे का उपयोग नहीं करने के लिए, और बदले और इसका इस्तेमाल करने के मीडियाविकि कॉन्फ़िगर है।

+0

इस और विस्तृत उत्तर को देखने के लिए धन्यवाद। स्क्विड के लिए पूछने का कारण अब सवाल में जोड़ा गया है। मीडियाविकी स्क्विड से बात कर सकती है लेकिन मुझे नहीं पता कि यह आपके द्वारा किए जा रहे अपाचे प्रस्ताव से बात करेगा या नहीं। –

+0

परंपरागत रूप से मीडियाविकी को एलएएमपी स्टाइल पर्यावरण (लिनक्स, अपाचे, माईएसक्यूएल, पीएचपी) में तैनात करने के लिए डिज़ाइन किया गया था और मैंने इसे कई बार इस शैली में तैनात किया है। मान लें कि आप उस संरचना का पालन कर रहे हैं, तो उपर्युक्त ठीक काम करेगा क्योंकि आप पहले ही अपाचे का उपयोग अपने HTTP फ्रंटएंड के रूप में करेंगे। अपाचे के भीतर mod_cache आपके स्क्विड कैश के समान व्यवहार करेगा जो आप यहां सेटअप करने का प्रयास कर रहे हैं। फिर भी, मुझे विश्वास नहीं है कि स्क्विड/अपाचे जैसी सामग्री-कैश यहां एक अच्छी पसंद होगी, और मीडिया कैकि में डिज़ाइन किए गए मेमकैड जैसे कैश त्वरक बेहतर अनुकूल होंगे। –

+0

यह एक बिल्कुल गलत और हानिकारक उत्तर है: आप विभिन्न कैश परतों को मिश्रित कर रहे हैं और खाते में शुद्ध नहीं ले रहे हैं। Memached एक _object * कैश है। मेगावाट महंगा प्रश्न/गणना के परिणामों को कैश करने के लिए इसका उपयोग करता है। यह एक प्रदर्शन विकी (या, एक एकल ऐपसेवर, एपीसी साझा भंडारण के साथ) के लिए आवश्यक है, हालांकि यह पर्याप्त नहीं है। स्क्विड (या, बेहतर, वार्निश) एक HTTP कैश है। यह परिणामी HTTP प्रतिक्रियाओं को कैश करता है और इस तरह यह अपाचे लोड में जबरदस्त कमी की अनुमति देता है। विकिपीडिया बिना किसी ट्यून किए गए HTTP कैशिंग के वर्तमान लोड स्तर पर काम नहीं कर पाएगा। – MaxSem

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