-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 9/12/2014 5:36 PM, Mark Eggers wrote:
> On 9/12/2014 3:07 PM, André Warnier wrote:
>> Christopher Schultz wrote:
>>> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
>>> 
>>> Mark,
>>> 
>>> On 9/12/14 11:14 AM, Mark Eggers wrote:
>>>> Chris,
>>>> 
>>>> On 9/12/2014 7:13 AM, Christopher Schultz wrote:
>>>>> Daniel, On 9/11/14 4:15 PM, Daniel Pfeiffer wrote:
>>>>>> On 2014-09-10 22:12, Mark Eggers wrote:
>>>>>>> I don't think that the trailing /* is valid for a
>>>>>>> simple Location directive. If you want regular
>>>>>>> expressions you'll have to use either LocationMatch or
>>>>>>> Location ~ (Location followed by the ~)
>>>>>> This was the decisive hint!  JkMount needs /*, but
>>>>>> Location doesn't seem to handle it well.  This makes the
>>>>>>  one-argument-form of JkMount quite useless.  The
>>>>>> solution was using the two-argument-form isolated with /*
>>>>>> and Location without. Still doesn't explain why it
>>>>>> sometimes works, but I'll leave that as an exercise for
>>>>>> mod_jk fans.
>>>>> Would you please log a bug in Tomcat's Bugzilla for this?
>>>>> At the very least, it warrants a documentation fix, and
>>>>> possibly a review of how mappings for <Location>s are 
>>>>> expressed/evaluated. -chris
>>>> - From the documentation:
>>>> 
>>>> Inside Location, one omits the first argument (path), which 
>>>> gets inherited from the Location.
>>>> 
>>>> That's where I took my clue. In Tomcat documentation
>>>> fashion, the density of information is quite high.
>>>> 
>>>> I personally don't have a problem with this, even though
>>>> it's not normally my style (obviously :-p).
>>> 
>>> The problem is that most people would write:
>>> 
>>> <Location "/foo"> JkMount worker </Location>
>>> 
>>> The "/foo" in location will handle any URL beginning with
>>> "/foo" while mod_jk will handle a URL with /exactly/ that path
>>> "/foo". Basically, <Location "/foo"> behaves like <Location
>>> "/foo/*"> without actually saying it,
> 
>> nitpick : more like "/foo*"
> 
>> and mod_jk will stupidly do exactly as requested, which is
>>> not always what might be expected.
>>> 
>>> That's why the above doesn't work as expected, but using 
>>> Set-Handler does: when Location/JkMount is used, we get a bad 
>>> JkMount result (mod_jk maps only /foo, not /foo/*). If you use 
>>> Set-Handler, then /httpd/ makes the decision that the URL
>>> matches the <Location> amd then sets the handler for it.
>>> 
>>> I really do think this warrants at least a documentation
>>> update.
>>> 
> 
>> Clearly explained, thanks.
> 
>> As an addendum, I would venture that the situation gets even more
>>  complicated (or downright nonsensical) with <LocationMatch 
>> regexp>, because there is no way JkMount can possibly match
>> that.
> 
>> And as a bit more than an addendum :
> 
>> When you think about it, it would probably greatly simplify
>> mod_jk itself, if it just assumed that any request passed to it
>> was for it, period, and not have his own match evaluation.  And
>> let the front-end entirely decide whether mod_jk is the
>> appropriate content-generating handler for this request.(*)
> 
>> Right now, basically, 2 consecutive evaluations are taking place 
>> (or at least seem to) : - first httpd, going through all its 
>> <Location>, <LocationMatch> and <File> sections, and then if
>> mod_jk is called, it re-does its own evaluation in function of
>> its own separate URI-mapping table. And one has to hope that the
>> results match, which they don't always, as per above. (**)
> 
>> I would guess this is a design left over from a time when maybe 
>> Apache httpd's URL-matching was not entirely able to match
>> Tomcat's (***), and nobody thought of questioning it ever after.
> 
>> At the very least, one possibility would be for mod_jk, when it 
>> sees a JkMount inside any <Location*> section, to turn its own 
>> uri-mapping off entirely, and just accept the request as it is.
>> In other words, such a JkMount would just become an alias to 
>> "SetHandler myself". (Unless no-jk is set of course). Oh do
>> those things get complicated..
> 
> 
>> (*) because from the httpd point of view, the content generator
>> is mod_jk. And httpd doesn't know, and doesn't give a damn, that
>> there is a cluster of 16 Tomcats behind mod_jk.
> 
>> (**) and then there is Tomcat of course, doing its own 
>> URI-to-webapp mapping. And then the webapp itself doing its own 
>> URI-to-servlet mapping. It all looks kind of redundant, doesn't
>> it ?
> 
>> (***) or maybe there was no way then, for Apache httpd to change 
>> its content-handler on-the-fly, and mod_jk had to sneak its way
>> in there to set itself.
> 
> Folks,
> 
> Ah, now I see.
> 
> Here was my naive thought. haven't tested this yet (may be a
> project for this weekend).
> 
> Outside of a <Location> or <LocatioMatch> directive, the JkMount 
> directive parses the configured URL prefix. If requested URL
> passes the rules, then mod_jk gets to handle the request.
> 
> Inside of <Location> or <LocationMatch>, things are a bit
> different. Apache HTTPD parses the incoming request. If the
> requested URL passes, then it's sent along to whatever is inside of
> the directive.
> 
> So you can think of a JkMount wrapped in a <Location> or 
> <LocationMatch> directive as a 'dynamic' JkMount. It gets
> rewritten with whatever passes the <Location> or <LocationMatch>
> directives.
> 
> Something like:
> 
> JkMount [i-made-it-inside] worker
> 
> At least that was my understanding. And yes, the documentation is
> not so clear.
> 
> It doesn't seem to me that obvious that JkMount would somehow read
> the parameter from <Location> or <LocationMatch> and use that in a 
> configuration such as:
> 
> JkMount /*faddle.jsp$ worker
> 
> Especially since that regular expression would make no since to
> JkMount.
> 

err . . . sense . . .

> . . . Friday evening, no beer, make your own conclusions /mde/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.13 (MingW32)

iQEcBAEBAgAGBQJUE5JBAAoJEEFGbsYNeTwtoKIH/205oiXP7g19E/iQOmIe0MKd
34CVn1evNm6h0IoTzGU+pMlT5QIv+OIypHlfRmaFncQEH588+mBknuOH85wMrQZg
EGbT4J/qnAQmjeh0lV4hMktUeeCoWrRb12q+VfN5gBP7CaXd1fNVyCAJsxoLT7Ka
hgxGzVI0Keq90hll8xrAPlAXLJLuPj4e2SEWIPOIUUg3cmztrerR7gF35K/pabQU
AjnMWGcSmTo14/SYp1Z+airEFpPF/Fd1N9aBA5Ki3ngtgxdbWueNQdFvB7E1Kpk+
IfDjnyPMeHmoDRTl7nv0Jarji3StpczeKlG5ymmZlrU3UrrRgOJ/VH+qa/EpTZg=
=xXyt
-----END PGP SIGNATURE-----

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

Reply via email to