-
23-08-2019 - |
题
我想知道如果任何人有任何插件或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")
预加载这种方式 - 通常,用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/'
不隶属于 StackOverflow