2012-08-17 51 views
2

我正在开发一个网站并使用Heroku进行托管。我在他们的开发计划,允许我使用他们的免费数据库,但只有10,000行。在两天内没有触摸该网站之后,我惊讶地看到Heroku的一封电子邮件提醒,说我的分贝已经达到了7,400行。经过一番研究,我意识到搜索机器人正在创建会话。有没有办法阻止它?我曾尝试在这篇文章的解决方案,但它似乎并没有工作时:阻止bot使用会话

How to disable Rails sessions for web crawlers?

我使用Rails 3.2.2。

回答

3

正如在这个问题(Setting session timeout in Rails 3)中看到的,您可以实现会话的自动过期并在会话过期时删除数据库行。如果你保持会话过期时间低并且不断删除数据库行,我想你不会达到你的Heroku限制。

+0

有没有比这更好的答案,任何想法? – Micah 2014-06-10 21:14:40

-1

你为什么要在你的数据库中存储会话?我建议你查找正在执行的服务器/站点设置并禁用它。在大多数情况下在DB中存储会话没有意义,并且肯定是不在开发站点上。

+0

感谢您的建议,但我选择数据库会话存储有原因。你还能为我提供一个答案吗? – hugo 2012-08-17 10:36:00

+0

如果您在帖子中提到的解决方案(链接到之前的帖子)不起作用,那么您应该检查您的案例中机器人传递的用户代理字符串,并相应地调整正则表达式。并且看看“Kulbir Saini”选项。 – 2012-08-17 10:40:26

+0

由于数据库中的会话是处理安全性的更安全方式,因此降低了评分。请参阅关于会话存储的Rails指南:http://guides.rubyonrails.org/security.html#session-storage – 2013-03-18 16:28:54