我有一个相当新的网站(约3周大),在Tomcat上运行,到目前为止访客人数很少。

在上周,我注意到有1000多个 Activity 会话,检查Tomcat的localhost_access *日志显示
绝大多数来自该范围内的IP:119.36.196。*,它们都属于日本百度。

这是他们访问首页的日志中的一个小示例。
119.63.196.107--[24 / Aug / 2011:07:02:46 +0000]“GET /; jsessionid = 94085F76780ACFD96C8109A29446288D HTTP / 1.1” 200 10311
119.63.196.44--[24 / Aug / 2011:07:03:21 +0000]“GET /; jsessionid = 943133C77BB1756CF11592115BA81725 HTTP / 1.1” 200 10333
119.63.196.39--[24 / Aug / 2011:07:03:56 +0000]“GET /; jsessionid = 9B4384BDECF540C8628467F7AB4AB463 HTTP / 1.1” 200 10311
119.63.196.19--[24 / Aug / 2011:07:04:31 +0000]“GET /; jsessionid = A0B555C3A18377D993B97D4491DD1012 HTTP / 1.1” 200 10311
119.63.196.45--[24 / Aug / 2011:07:05:10 +0000]“GET /; jsessionid = A3782FA61558BF11C4D5AC4F3DD1EC86 HTTP / 1.1” 200 10311
119.63.196.23--[24 / Aug / 2011:07:05:53 +0000]“GET /; jsessionid = A3AF84EF13F21492EB47FAB001A1C2E5 HTTP / 1.1” 200 10311
119.63.196.120--[24 / Aug / 2011:07:06:31 +0000]“GET /; jsessionid = A7C490CEC2C7F2969772AC4050C6D761 HTTP / 1.1” 200 10311
119.63.196.108--[24 / Aug / 2011:07:07:07 +0000]“GET /; jsessionid = A7F769D354CB37E99843292D650D6367 HTTP / 1.1” 200 10311

没有一个单独的IP破坏站点,但是来自该IP范围的集体请求却增加了 Activity 会话。他们似乎以某种协调的方式进行操作,因为一次将一页纸作为目标,并在20分钟的时间内在119.63.196。* IP范围内获得约30次匹配(相差30%)。然后它将移至另一页...这几乎整天都在进行,并增加了Tomcat会话。

我确实将非 Activity 会话超时设置得很高(720分钟),也许我需要将该数字降低很多。也许Baidu Japan正在进行频繁检查,因为它认为页面由于链接的更改而发生了更改(即jsessionid总是不同)?

谢谢阅读。我欢迎任何/所有建议!

埃里克

最佳答案

实际上,蜘蛛通常不会与该网站保持联系。那很正常您应该问自己,如果您的网站根据正常的GET请求创建会话,是否真的有必要。会话通常用于存储登录用户及其首选项,例如语言环境等。但是蜘蛛根本不会登录,并且根本不提交任何表单。那为什么要创建会话?

基本上有两种方法可以解决此“问题”:

  • 修复您的网站,以便在不需要时不必创建会话。仅在用户登录或创建/更新整个会话范围的首选项/变量后才创建它。具体执行方式取决于您的网站使用的API /框架。
  • 通过robots.txt阻止(特定)蜘蛛。

  • 请注意,会话创建和会话本身并不是特别昂贵。空的会话对象不应分配超过1KB的空间。我发现您的会话超时太大了。默认的30分钟已经比较多了。作为一种完全不同的替代方法,您也可以将其设置为5分钟左右,并引入一个JS / Ajax“心跳”,只要用户在文档上处于 Activity 状态,它就会在超时1分钟内发送带有会话cookie的轮询请求(点击,按键等)。这将使服务器上的会话保持 Activity 状态。您可以在this answer中找到一个示例。

    08-04 04:59