我想知道如果任何人有任何插件或Capistrano的食谱,将“预热”的页面缓存通过构建所有的页面缓存的html在调配而成,或在本地部署发生之前的时间的Rails应用程序。

我有一些大多是静态的网站,不会有太大变化,并且将运行如果HTML已经写速度更快,而不是要求一个访问者击中的部位。

而不是这样的创造我自己(似乎很容易,但它lowwwww优先级)它已经存在?

有帮助吗?

解决方案

我已经设置确认所有网站的主要领域都可用(总共几百页)集成测试。他们没有做任何改变的数据 - 刚刚拉回来的页面和表格

我不跑目前他们当我部署我的生产实例,但现在你提到它 - 它实际上可能是一个好主意。

另一种方法是拉出现在你的网站地图的每个页面(如果有的话,这你应该)。它应该是很容易写一个宝石/耙脚本,做到这一点。

其他提示

您可以使用wget或其他程序,以蜘蛛的网站。事实上,这种情况下的被提及作为在其手册页面的用途之一:

  

这个选项告诉wget将其删除下载的每一个文件,已经这样做了。它用于通过代理,e.g取预流行的网页是有用:

   wget -r -nd --delete-after http://whatever.com/~popular/page/
     

-r选项是检索递归,和-ND不创建目录。

我用耙子任务看起来像这样的网站地图,每天晚上刷新我的网页缓存:

 require 'action_controller/integration'
 ActionController::Base::expire_page("/sitemap.xml")   
 app = ActionController::Integration::Session.new
 app.host = "notexample.com"
 app.get("/sitemap.xml")

请参阅 http://gist.github.com/122738

预加载这种方式 - 通常,用cron作业在晚上10点太平洋开始,并在早上6点东部时间结束 - 是一个很好的方式,以负载平衡你的网站

查看 spider_test Rails插件一个简单的方法在测试中做到这一点

如果你要使用上面wget的,添加--level =,--no父母,--wait =秒,--waitretry =秒数选项节流您的负载,你不妨登录并捕获用于诊断或分析的标题的响应(如果需要改变从/ TMP路径):

wget -r --level=5 --no-parent --delete-after \
  --wait=2 --waitretry=10  \
  --server-response        \
  --append-output=/tmp/spidering-`date "+%Y%m%d"`.log
  'http://whatever.com/~popular/page/'
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top