On Mon, 10 Jun 2002, Douglas, Rory wrote:

> It seems the config format for httpd.conf has changed: Apache now complains
> about JkWorkersFile etc.  A little searching unearthed people using JkSet
> .... and including a lot of stuff that used to be in workers.properties
> directly in httpd.conf.

There are 2 categories of info:
1. Global settings ( channels, workers, etc)
2. Mappings

Each can be configured in either workers2.properties or httpd.conf.

All things follow a simple pattern: you have a named component, a property 
and a value.

In workers2.properties:
  [COMPONENT]
  property=value

or 
  COMPONENT.property=value

( the first format seems more clean and easier to type/read )

In httpd.conf:
 
 JkSet COMPONENT.property value


For the second part, what used to be "JkMount /foo/* ajp13":

In workers2.properties:
 [uri:/foo/*]
 group=ajp13

In Apache2 httpd.conf:
 <Location /foo/*>
    JkUriSet group ajp13
 </Location>

We use 'group' because the recommened method is to map to an lb group, 
even if you have a single instance. Each ajp13 worker you define is 
automatically part of the default worker ( named 'lb'), or you can
specify different groups ( if you have complex setups ). 

The first choice ( workers2.properties ) will work unchanged with 
any server supported by jk2. The second is only implemented for Apache2,
but is faster and scales better ( it uses the highly optimized apache2
mapper instead of our less optimized mapper in jk ). 

Also the first choice supports some runtime reconfigurations without
restarting apache ( like enabling/disabling/adding workers or 
mappings ). It is a very fine line here, we want to avoid restarting 
for frequent changes that happen in tomcat ( adding more workers to
handle high load, container restarts, etc ), but dynamic reconfig
has a price in syncs and performance so we keep it small for now.


> Is this the way to configure mod_jk2? If so, where are the directives
> documented?

Not yet, there is a sample workers2.properties. We're waiting for
contributions :-)

( I'll write more when I find some time, but it would be great if 
someone who can actually write will do it )


> I have attempted to use some fragments I found on a tomcat-dev mailing list
> archive eg.
>  
> JkSet worker.ajp13.type ajp13
> JkSet worker.ajp13.channel socket
> JkSet worker.ajp13.port 8009
>  
> However, Apache complains with  "unrecognised option worker.ajp13.type
> ajp13" etc.

That's an old message, before reorganizing the load balancer and channels.

'worker' has been replaced with 'channel' in the configs ( since ajp13 
is the worker in most cases, and there's little to configure in it ).

Try:
JkSet channel.socket:localhost:8009.group lb

Note that the name of the channel and worker should be URL-style
( it is possible to avoid that, but I think it's cleaner ).
This setting will create a worker named: 

   ajp13:localhost:8009

and you can map to it using 
  JkUriSet  group ajp13:localhost:8009

Or better: 
  JkUriSet  group lb

( in a <Location> )



Costin



--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to