tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From André Warnier ...@ice-sa.com>
Subject Re: Logfile noise, mod_jk, Apache 2.2, "Uri * is invalid. Uri must start with /"
Date Thu, 29 Nov 2012 14:33:59 GMT
Patrick Middleton wrote:
> Hi folks,
> 
> I'm working with recent builds/installations of
> Apache 2.2.22 with mod_jk 1.2.37 on MacOSX 10.4.11/PPC
> Apache 2.2.22 with mod_jk 1.2.37 on MacOSX 10.8.2/x86_64
> connecting to Tomcat 5.5.7 (from binary distribution) running on MacOSX 
> 10.4.11.
> 
> What I am finding is lots of log entries such as this one in 
> /var/log/apache2/mod_jk.log:
> [Thu Nov 29 12:17:14.422 2012] [38496:140733193388032] [warn] 
> map_uri_to_worker_ext::jk_uri_worker_map.c (1057): Uri * is invalid. Uri 
> must start with /
> 
> corresponding to this one in /var/log/apache2/access_log:
> ::1 - - [29/Nov/2012:12:17:14 +0000] - - - "OPTIONS * HTTP/1.0" 200 - 
> "-" "Apache/2.2.22 (Unix) DAV/2 mod_jk/1.2.37 mod_ssl/2.2.22 
> OpenSSL/0.9.8x (internal dummy connection)"
> 
> 
> My understanding is that this is the Apache master instance running as 
> root is polling its spare/worker processes to check that they're alive 
> and I have tracked this down to server/mpm_common.c in the Apache 2.2 
> sources.
> 
> I'm not an Apache internals expert.  I'm not really even that good at 
> configuring Apache.  I have:
> <IfModule jk_module>
>     JkWorkersFile /etc/apache2/workers.properties
>     JkShmFile /private/var/run/jk-apache2.shm
>     JkLogFile /private/var/log/apache2/mod_jk.log
>     JkLogLevel info
>     JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
>     JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
>     JkRequestLogFormat "%w %V %T %s %r"
>     JKMount "/TomcatApplications/*" worker1
>     JkMountCopy All
> </IfModule>
> 
> so I don't see how the heartbeat request is being processed by the 
> jk_module handler.  Possibly my diligent use of Google to find how to 
> configure apache 2.2 to stop this has not been diligent enough.  
> Suggestions for additional Apache configuration directives are welcome.
> 
> Would it be reasonable to change the sources for mod_jk to not log a 
> warning when the URI is * and the method is OPTIONS and the remote 
> address is localhost?
> 

Hi.
Thanks for the detailed and complete info, it simplifies responses.
I basically agree with you in not understanding why mod_jk, with the single mapping
 >     JKMount "/TomcatApplications/*" worker1
would believe that a request "OPTIONS *" applies to it, and would consequently mumble in 
the logfile.

I would let the resident mod_jk expert answer that one.

But to avoid the messages in the meantime, you could try the following :

1) comment out the following JkMount and JkMountCopy lines :
 > <IfModule jk_module>
 >     JkWorkersFile /etc/apache2/workers.properties
 >     JkShmFile /private/var/run/jk-apache2.shm
 >     JkLogFile /private/var/log/apache2/mod_jk.log
 >     JkLogLevel info
 >     JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
 >     JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
 >     JkRequestLogFormat "%w %V %T %s %r"
#     JKMount "/TomcatApplications/*" worker1
#     JkMountCopy All
 > </IfModule>

2) add a section to your Apache httpd configuration :
<Location /TomcatApplications/>
   <Limit GET POST>
     SetHandler jakarta-servlet
     SetEnv JK_WORKER_NAME worker1
   </Limit>
</Location>

Honestly, I have no idea if a <Limit> section would do the trick here. But you can always

try it.
If it works like I expect, the above means :
- for any request URL which matches ^/TomcatApplications/
- only if the method is GET or POST
- set mod_jk as the Apache response handler
- and set the mod_jk "worker" to worker1
If the method is not GET or POST, do nothing, meaning let the request be served by the 
default Apache response handler (which would complain if this was other than OPTIONS, 
because it would not find the path on disk).



Reference : http://tomcat.apache.org/connectors-doc/reference/apache.html
Section : Using SetHandler and Environment Variables
and
http://httpd.apache.org/docs/2.2/mod/core.html#limit


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


Mime
View raw message