Re: conclusions to FAQs on mod_proxy_ajp vs. mod_jk?

2006-05-31 Thread Jim Jagielski


On May 31, 2006, at 10:07 AM, Mladen Turk wrote:


Jim Jagielski wrote:

I guess it depend on what we mean by "healthy"... We could
ping the socket and make sure there's a response at the network
stack layer, which would be protocol agnostic. Or, each
proxy module would need to implement some protocol specific
"ping/pong" test.



Right, the cping/cpong is a missing feature.
I didn't implement it initially because it existed only
for ajp protocol, so a common mechanism should be used
perhaps a socket liveness test on ftp/http and standard
cping/cpong messages on ajp.



As we (hopefully) add more protocols into the proxy
framework, we will run into more and more cases
where there are some things that simply can't be
"generic" enough to avoid protocol specific items...
I'm looking at some sort of provider interface
for that.



The balancer misses few features from mod_jk that would
be great to have, like hot standby and a new bybussines
lb method.



These are expected to be added in soonish :)


Re: conclusions to FAQs on mod_proxy_ajp vs. mod_jk?

2006-05-31 Thread Jim Jagielski


On May 31, 2006, at 9:59 AM, Graham Leggett wrote:


On Wed, May 31, 2006 3:47 pm, Jim Jagielski wrote:


Of course, there is a growing school of thought that questions
whether the whole AJP stuff itself is worthwhile... just
proxy HTTP and be done with it. :)


This was a question raised way back when before the ajp work  
started, the
question was whether mod_jk or mod_proxy_http was faster. It turned  
out
mod_jk was faster, and so we have mod_proxy_ajp, but that was in  
the days

before mod_proxy_http had a connection pool and load balancing.

It would be interesting to benchmark http and ajp again to see what  
the

difference is today with the connection pool enabled on both.



AJP had 2 things going for it, IIRC:

   1. It was binary, so there was the transmission savings
   2. Tomcat could handle AJP faster and more efficiently than
  HTTP (the AJP endpoints were quicker than the HTTP
  endpoint implementations)

#2 has been the most changing, and is, at least IMO, not
a real factor nowadays. #1 is still nice, plus, of
course, not being holden to HTTP, there's stuff that
can be added at the protocol level to make
the WebServer->Tomcat interaction more efficient
(so maybe that's reason #3 :) ).


Re: conclusions to FAQs on mod_proxy_ajp vs. mod_jk?

2006-05-31 Thread Mladen Turk

Jim Jagielski wrote:


I guess it depend on what we mean by "healthy"... We could
ping the socket and make sure there's a response at the network
stack layer, which would be protocol agnostic. Or, each
proxy module would need to implement some protocol specific
"ping/pong" test.



Right, the cping/cpong is a missing feature.
I didn't implement it initially because it existed only
for ajp protocol, so a common mechanism should be used
perhaps a socket liveness test on ftp/http and standard
cping/cpong messages on ajp.



Of course, there is a growing school of thought that questions
whether the whole AJP stuff itself is worthwhile... just
proxy HTTP and be done with it. :)



If some day we implement the http-ng and web-mux then
ajp will be obsolete. Until that it performs much faster
when compared to http (with some limitations).
We have some protocol enhancements on the schedule, like
programmable message size, graceful shutdown, client
break notification, and local headers, that will preserve
backward compatibility with AJP/1.3.


Anyway, I've done some testing and mod_proxy_ajp works at
least as well as mod_jk...



Same here :)
The balancer misses few features from mod_jk that would
be great to have, like hot standby and a new bybussines
lb method.


Regards,
Mladen.



Re: conclusions to FAQs on mod_proxy_ajp vs. mod_jk?

2006-05-31 Thread Graham Leggett
On Wed, May 31, 2006 3:47 pm, Jim Jagielski wrote:

> Of course, there is a growing school of thought that questions
> whether the whole AJP stuff itself is worthwhile... just
> proxy HTTP and be done with it. :)

This was a question raised way back when before the ajp work started, the
question was whether mod_jk or mod_proxy_http was faster. It turned out
mod_jk was faster, and so we have mod_proxy_ajp, but that was in the days
before mod_proxy_http had a connection pool and load balancing.

It would be interesting to benchmark http and ajp again to see what the
difference is today with the connection pool enabled on both.

Regards,
Graham
--




Re: conclusions to FAQs on mod_proxy_ajp vs. mod_jk?

2006-05-31 Thread Jim Jagielski


On May 28, 2006, at 4:59 PM, Ruediger Pluem wrote:


3. Currently connections are not checked if they are healthy  
*before* a request is send
   (something like mod_jk's connect_timeout, prepost_timeout). I  
think this would be nice to have,
   but I guess it is not easy to do this in a protocol independent  
way. So this might be only

   subject to implementation in mod_proxy_ajp.



I guess it depend on what we mean by "healthy"... We could
ping the socket and make sure there's a response at the network
stack layer, which would be protocol agnostic. Or, each
proxy module would need to implement some protocol specific
"ping/pong" test.

4. There is no match for mod_jk's recovery_options currently.  
Furthermore I think some research
   needs to be done about mod_proxy's current behaviour in this  
situation. I guess this is important

   to prevent things being twice in your basket :-).



+1.

Of course, there is a growing school of thought that questions
whether the whole AJP stuff itself is worthwhile... just
proxy HTTP and be done with it. :)

Anyway, I've done some testing and mod_proxy_ajp works at
least as well as mod_jk...


Re: conclusions to FAQs on mod_proxy_ajp vs. mod_jk?

2006-05-28 Thread Ruediger Pluem


On 05/28/2006 03:18 PM, Jeff Trawick wrote:
> On 5/27/06, Ruediger Pluem  wrote:
> 
>>
>>
>> On 05/27/2006 03:58 PM, Jeff Trawick wrote:
>>
>> >
>> > Are there still fundamental pieces missing from mod_proxy_ajp +
>> > mod_proxy_balancer which have to be resolved before mod_proxy_ajp is
>> > the natural solution for anybody on Apache >= 2.2?
>>
>> Currently mod_proxy_balancer lacks the domain feature of mod_jk, but I do
>> not know if this is regarded as fundamental piece.

Other things I noticed that are different:

1. mod_jk's recycle_timeout and cache_timeout are not exactly matched by 
mod_proxy's
   smax and ttl. But from my current personal point of view this does not 
matter.

2. mod_proxy_ajp does miss mod_jk's secret options. Again not critical from my 
point of view.

3. Currently connections are not checked if they are healthy *before* a request 
is send
   (something like mod_jk's connect_timeout, prepost_timeout). I think this 
would be nice to have,
   but I guess it is not easy to do this in a protocol independent way. So this 
might be only
   subject to implementation in mod_proxy_ajp.

4. There is no match for mod_jk's recovery_options currently. Furthermore I 
think some research
   needs to be done about mod_proxy's current behaviour in this situation. I 
guess this is important
   to prevent things being twice in your basket :-).


>> > Isn't pass-through of client SSL connection information another
>> > problem with mod_proxy?  (servlets can't access cipher or client
>> > certificate)
>>
>> AFAIK not with mod_proxy_ajp. It seems to pass all these information
>> to Tomcat.
> 
> 
> oops, I meant "... problem with using generic HTTP support with
> mod_proxy -- mod_proxy_http"; I agree, the functional problem doesn't

I do not know if there is any standard in passing such information to the 
backend
via HTTP, but I think you can pick up all SSL information that is available as 
env
variables and add them as request headers to the backend request via 
mod_headers.
Is this a sufficient solution for the problem?

Regarding mod_proxy_http the following TODO's come up to my mind:

1. Currently we cannot handle keepalive connections to SSL backends.
2. There are some problems if the backend closes a keepalive connection by 
itself
   due to a timeout. See also:

  http://mail-archives.apache.org/mod_mbox/httpd-dev/200602.mbox/[EMAIL 
PROTECTED]
  http://mail-archives.apache.org/mod_mbox/httpd-dev/200602.mbox/[EMAIL 
PROTECTED]

  and PR3770 (http://issues.apache.org/bugzilla/show_bug.cgi?id=37770).


Regards

RĂ¼diger



Re: conclusions to FAQs on mod_proxy_ajp vs. mod_jk?

2006-05-28 Thread Jeff Trawick

On 5/27/06, Ruediger Pluem <[EMAIL PROTECTED]> wrote:



On 05/27/2006 03:58 PM, Jeff Trawick wrote:

>
> Are there still fundamental pieces missing from mod_proxy_ajp +
> mod_proxy_balancer which have to be resolved before mod_proxy_ajp is
> the natural solution for anybody on Apache >= 2.2?

Currently mod_proxy_balancer lacks the domain feature of mod_jk, but I do
not know if this is regarded as fundamental piece.


shrug


> Isn't pass-through of client SSL connection information another
> problem with mod_proxy?  (servlets can't access cipher or client
> certificate)

AFAIK not with mod_proxy_ajp. It seems to pass all these information to Tomcat.


oops, I meant "... problem with using generic HTTP support with
mod_proxy -- mod_proxy_http"; I agree, the functional problem doesn't
apply to mod_proxy_ajp


Re: conclusions to FAQs on mod_proxy_ajp vs. mod_jk?

2006-05-27 Thread Ruediger Pluem


On 05/27/2006 03:58 PM, Jeff Trawick wrote:

> 
> Are there still fundamental pieces missing from mod_proxy_ajp +
> mod_proxy_balancer which have to be resolved before mod_proxy_ajp is
> the natural solution for anybody on Apache >= 2.2?

Currently mod_proxy_balancer lacks the domain feature of mod_jk, but I do
not know if this is regarded as fundamental piece.

> 
> Isn't pass-through of client SSL connection information another
> problem with mod_proxy?  (servlets can't access cipher or client
> certificate)

AFAIK not with mod_proxy_ajp. It seems to pass all these information to Tomcat.

Regards

RĂ¼diger