【发布时间】:2013-12-03 08:55:38
【问题描述】:
我有一个每天大约有 2000 名访问者的网站,该网站充斥着各种搜索引擎机器人的垃圾邮件。我尝试将会话过期时间减少到 20 分钟,但我仍然得到很多 mysql_slow_queries。所以我正在查看文章Google crawler, cron and codeigniter sessions,以完全忽略 会话表中的机器人,但他们的做法是,忽略 IPs,但在我分析数据库时我看到同一个机器人使用不同的IPs。我注意到机器人每次都使用相同的用户代理,那么忽略用户代理是否安全?有哪些必要步骤可以避免查询缓慢并忽略机器人?
一些慢查询
INSERT INTO `ci_sessions` (`session_id`, `ip_address`, `user_agent`, `last_activity`, `user_data`) VALUES ('619bfd8ef4171480645feb17a15323ee', '219.92.135.144', 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15', 1384875135, '')
INSERT INTO `ci_sessions` (`session_id`, `ip_address`, `user_agent`, `last_activity`, `user_data`) VALUES ('fa48b5168b8e84d90dc9b87ce65dfc89', '66.249.74.112', 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)', 1384875522, '')
【问题讨论】:
-
这个机器人是否忽略了你的 robots.txt?然后,您应该在防火墙级别阻止它,以防止它占用任何 cpu 资源,即使它仍然会阻塞带宽。
-
对不起,我应该提到,我只是想从会话表中忽略它,而不是从抓取网站。
-
我有点好奇为什么每天只有 2k 用户,你的插入速度很慢?我有一个大容量站点(
-
我也不确定。通常是在某个时间范围内,通常是在早上(美国时区),也就是大量机器人爬过网站的时间。而且我通常会看到
ci_session的开销,我必须每天优化该表。我也对它们进行了索引。不知道发生了什么。
标签: php codeigniter session codeigniter-2 bots