On 12/04/18 00:10, Matt Cosentino wrote:
> I first noticed it by the large number of sessions in the manager webapp, but 
> then I verified it in my logs. Both of my sites are polled every minute by 
> the UptimeRobot service. These requests are logged and I can see what session 
> is being used. For the default host site, they reuse the same session. For 
> the non-default host sites, they create new sessions.

It is a limitation of the CrawlerSessionManagerValve. It only supports
one session per client IP as it maps client IP to session ID internally.
Moving the Valve to the Context (if you want it to apply to every
Context you can define it in CATALINA_BASE/conf/context.xml) is a
workaround.

The proper fix is to change the valve so it maps context+client IP to
session ID. There are several ways to do this. Please open a Bugzilla
enhancement request for this and someone will take a look.

Mark


> 
> 04-11 00:00:14 INFO  LogRequest           >  HEAD: https www.defaulthost.com 
> /, FROM: 69.162.124.237, D21FE7FD2B82B776AB194C278244D79E, 
> Mozilla/5.0+(compatible; UptimeRobot/2.0; http://www.uptimerobot.com/), 
> REFERER: https://www.defaulthost.com
> 04-11 00:01:14 INFO  LogRequest           >  HEAD: https www.defaulthost.com 
> /, FROM: 69.162.124.237, D21FE7FD2B82B776AB194C278244D79E, 
> Mozilla/5.0+(compatible; UptimeRobot/2.0; http://www.uptimerobot.com/), 
> REFERER: https://www.defaulthost.com
> 04-11 00:02:14 INFO  LogRequest           >  HEAD: https www.defaulthost.com 
> /, FROM: 69.162.124.237, D21FE7FD2B82B776AB194C278244D79E, 
> Mozilla/5.0+(compatible; UptimeRobot/2.0; http://www.uptimerobot.com/), 
> REFERER: https://www.defaulthost.com
> 04-11 00:03:13 INFO  LogRequest           >  HEAD: https www.defaulthost.com 
> /, FROM: 69.162.124.237, D21FE7FD2B82B776AB194C278244D79E, 
> Mozilla/5.0+(compatible; UptimeRobot/2.0; http://www.uptimerobot.com/), 
> REFERER: https://www.defaulthost.com
> 
> 04-11 00:00:32 INFO  LogRequest           >  HEAD: https www.anotherhost.com 
> /, FROM: 69.162.124.237, C62DCA4E9DC39884E3E82EE19AAEAB4A, 
> Mozilla/5.0+(compatible; UptimeRobot/2.0; http://www.uptimerobot.com/), 
> REFERER: https://www.anotherhost.com
> 04-11 00:01:32 INFO  LogRequest           >  HEAD: https www.anotherhost.com 
> /, FROM: 69.162.124.237, 542027513FD08CD82C8BEFF3C4E75F8C, 
> Mozilla/5.0+(compatible; UptimeRobot/2.0; http://www.uptimerobot.com/), 
> REFERER: https://www.anotherhost.com
> 04-11 00:02:32 INFO  LogRequest           >  HEAD: https www.anotherhost.com 
> /, FROM: 69.162.124.237, F93C1929D880DDD446D13E36413544DF, 
> Mozilla/5.0+(compatible; UptimeRobot/2.0; http://www.uptimerobot.com/), 
> REFERER: https://www.anotherhost.com
> 04-11 00:03:32 INFO  LogRequest           >  HEAD: https www.anotherhost.com 
> /, FROM: 69.162.124.237, 82C3BB415817B8C4761EFEF7EE7591DD, 
> Mozilla/5.0+(compatible; UptimeRobot/2.0; http://www.uptimerobot.com/), 
> REFERER: https://www.anotherhost.com
> 
> This is with the valve at the engine level, which I assumed meant that it 
> would apply to all hosts within that engine. The documentation states 
> "Normally, this Valve would be used at the Engine level.", so that's what I 
> did.
> 
> https://tomcat.apache.org/tomcat-8.5-doc/config/valve.html#Crawler_Session_Manager_Valve
> 
> - Matt
> 
> -----Original Message-----
> From: Christopher Schultz <ch...@christopherschultz.net> 
> Sent: Wednesday, April 11, 2018 1:46 PM
> To: users@tomcat.apache.org
> Subject: Re: CrawlerSessionManagerValve only working with default host
> 
> Matt,
> 
> On 4/11/18 2:03 PM, Matt Cosentino wrote:
>> I have CrawlerSessionManagerValve set up at the Engine level, but it only 
>> seems to be working for the default host and not any other host. Is this 
>> expected behavior? Should I put it at the host level for each host?
>>
>> Here is an example of how I have it set up:
>>
>>     <Engine defaultHost="www.defaulthost.com" name="DefaultHost">
>>       <Realm className="org.apache.catalina.realm.LockOutRealm">
>>         <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
>>       </Realm>
>>       <Host name="www.defaulthost.com" appBase="C:\web\defaulthost"/>
>>       <Host name="www.anotherhost.com" appBase="C:\web\anotherhost"/>
>>       <Valve 
>> className="org.apache.catalina.valves.CrawlerSessionManagerValve" 
>> sessionInactiveInterval="300"/>
>>    </Engine>
>>
>> Tomcat 8.5.24
> 
> I don't see anything in the code that suggests it wouldn't work when used at 
> the <Engine> level, but it also looks like it makes the most sense at the 
> <Context> level.
> 
> Can you describe your testing and the results you got?
> 
> When you say "only [...] working for the default host", do you mean that it 
> works for the default host within an <Engine> (when configured at the 
> <Engine> level) or that it doesn't even work with a non-default <Host> when 
> configured at the <Host> level?
> 
> -chris
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to