I would also love to see such a module available, and im very willing to contribute in any way i can, however, im skillless in the C arena :(
Good luck. Tim ----- Original Message ----- From: "Nathan Ollerenshaw" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Thursday, March 13, 2003 10:27 PM Subject: Advanced Mass Hosting Module > Resending this to this list as I got no response on users list. > > Currently, we are using flat config files generated by our website > provisioning software to support our mass hosted customers. The reason > for doing it this way, and not using the mod_vhost_alias module is > because we need to be able to turn on/off CGI, PHP, Java, shtml etc on > a per vhost basis. We need the power that having a distinct > <VirtualHost> directive for each site gives you. > > Is there a better way? > > What I have in mind is a module that fits in with our current LDAP > based infrastructure. Currently, LDAP services our mail users, and I > would like to see the Apache mass hosting configuration held in LDAP as > well. In this way, we can just scale by adding more apache servers, > mounting the shared docroot and pointing them to the LDAP server. > > The LDAP entry would look something like this: > > # www.example.com, base > dn: uid=www.example.com, o=base > siteGidNumber: 10045 > siteUidNumber: 10045 > objectClass: top > objectClass: apacheVhost > serverName: www.example.com > serverAlias: example.com > serverAlias: another.example.com > docRoot: /data/web/04/09/example.com/www > vhostStatus: enabled > phpStatus: enabled > shtmlStatus: enabled > cgiStatus: enabled > dataOutSoftLimit: 1000000 (in bytes per month) > dataOutHardLimit: 10000000 > dataInSoftLimit: 1000000 > dataInHardLimit: 10000000 > dataThrottleRate: 1000000 (in bits/sec) > > Then, as a request came in, the imaginary mod_advanced_masshosting > module would first check to see if it had the information about the > domain already cached in memory (to avoid hitting LDAP for every HTTP > request, which would be a Bad Idea) and then if not, it would grab the > entry from LDAP, cache it, and service the incoming requests. > > The cache itself would need to be shared among the actual child apache > processes somehow. > > In addition to these features, the module would keep track of the > amount of data transferred in & out for each vhost and apply a > soft/hard limit when the limits defined in the LDAP entry were reached. > The amount of actual data transferred would periodically be written to > either a GDBM file or even to an LDAP entry (not sure what is best - > probably LDAP for consistency) and the data would also need to be > shared among any servers in a cluster somehow. > > This would enable ISPs to bill on a per vhost basis fairly accurately, > and limit abusive sites. > > Now, I've looked around for something like this, and as far as I can > see, there isn't anything that does vhosting quite like this, except > for the commercial systems out there such as Zeus. > > Do people think this is a good approach? > > Will another method give me what I want? (LDAP is not a dependency, > just a nice-to-have) > > Finally, I am thinking about starting an Open Source project to write > this module. My C is pretty primitive right now, though I have got > simple LDAP lookup code working already (just not in Apache, yet). > > Would anyone else see this as a worthwhile project for Apache? > > It certainly would solve our problems, but it sometimes feels like I'm > trying to fix a simple problem with something very heavy - though > implemented correctly, I don't think performance will be a problem. > > Comments gratefully received :) > > Regards, > > Nathan. > > -- > Nathan Ollerenshaw - Systems Engineer - Shared Hosting > ValueCommerce Japan - http://www.valuecommerce.ne.jp > > If you think nobody cares if you're alive, try missing a > couple of car payments. > >
