New Module: Apache process/host manager

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View
I am writing a Perl module that launches and manages Apache processes
based on stored parameters. I'm currently working with the namespace
"Server::ApacheIVHost" where ApacheIVHost is an abbreviation for
"Apache Independent Virtual Hosts". I'm hoping to get lost of input on
the potential usefulness of this project and my current namespace.

As the name implies this package is designed to create a
virtual-host-type setup using seperate Apache processes. This is
accomplished by creating an Apache process for every virtual host
address, each listening on a different port, and using  'master' Apache
processes on ports 80 (really any port you want) and 443 to proxy
connections to the appropriate server. The package contains modules to
store host information in an SQL database, but the software is written
with a clearly defined API to easily allow for the addition of other
storage interfaces.

Server::ApacheIVHost provides three main things:
1. The ability to run host processes under a specific Unix user/group
and all the advantages that this implies. For example, I run and host
under my Subversion repository user/group for mod_dav_svn.

2. Per-host configuration files. This has alot of advantages, one being
the ability to let users alter a host's configuration files, and if
they mess up and their server doesn't start, oh well. They've shut down
their own server and noone elses.

3. Host creation is completely automated. For example, when storing
host information in a MySQL database one needs only to add a new host
entry and Server::ApacheIVHost automatically creates directories for
the host, creates log files, starts its daemon and updates its DNS

My biggest concern is the resource requirements of running an Apache
process for every single hostname. I'm worried that this per-host
process scheme will be too impractical in mass virtualhost systems. To
help reduce the resource requirement the StartServers, MinSpareServers
and MaxSpareServers directives can/will be reduced for the single host
processes. In addition, Server::ApacheIVHost is being written to allow
for a custom list of DSOs per host process, so as to reduce the
process's memory footprint. On my personal server (500MHz P3/1GB RAM),
I have about twenty hosts running through Server::ApacheIVHost and I
don't see any resource problems, however my web traffic is lite.

Please provide me ANY feedback you feel is relevant. I'm really looking
for thoughts on my module namespace and a discussion of how useful you
feel this module might be.

Thank you!
Matthew Pitts
invinity <at>

Re: New Module: Apache process/host manager

I forgot to mention that the code for Server::ApacheIVHost can be
browsed via mod_dav_svn at .

Thanks again for any input you guys have.
Matthew Pitts
invinity <at>

Site Timeline