为了加快MediaWiki网站的速度,该网站的内容使用了大量模板,但是当模板完成工作时,其他网站几乎都有静态内容我想设置一个squid服务器 见
https://www.mediawiki.org/wiki/Manual:PurgeList.php
和
https://www.mediawiki.org/wiki/Manual:Squid_caching
然后自动填充squid服务器的缓存"通过使用脚本执行wget / curl调用,该调用将触及Mediawiki的所有页面。我的预期是,在这个程序之后,每个页面都在squid缓存中(如果我足够大),然后每个访问都将由squid完成。
我将如何运作? E.g:
到目前为止我尝试了什么
我首先找到了如何安装鱿鱼:
和
我想出了我的ip地址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');
到我的LocalSettings.php
然后我重新启动了apache2并使用
启动了squid3service squid3 restart
并使用
进行首次访问尝试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 :(得分:0)
假设Apache 2.x。
虽然没有Squid相关,但您可以仅使用Apache模块实现此目的。在这里查看mod_cache:https://httpd.apache.org/docs/2.2/mod/mod_cache.html
您可以简单地将其添加到Apache配置中,并要求Apache对渲染内容进行磁盘缓存。
您需要确保您的内容在生成的PHP响应中具有适当的缓存过期信息,MediaWiki应该为您解决此问题。
添加这样的缓存层可能没有预期的结果,因为该层不知道页面是否已更改,此处的缓存管理很困难,并且只应用于实际的静态内容。
Ubuntu的:
a2enmod cache cache_disk
Apache配置:
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
MediaWiki还支持将Memcached用作仅用于数据和模板的快速内存缓存服务。这不像Squid或Apache mod_cache这样的网站范围的缓存那么残酷。 MediaWiki将管理Memcached,以便任何更改立即反映在缓存存储中,这意味着您的内容将始终有效。
请参阅MediaWiki的安装说明:https://www.mediawiki.org/wiki/Memcached
我建议不要使用Apache mod_cache或Squid来完成此任务,而是安装Memcached并配置MediaWiki以使用它。