chipig
04-20-2004, 11:12 PM
Project: mod_vhost_dbi
Problem: Apache 2 is not a good choice for massive virtual hosting environments. When a virtual host is added, it requires a complete restart of the Apache HTTPd. As anyone with many virtual hosts can tell you, the HTTPd takes a significant amount of time to start up with many virtual hosts. With thousands of Virtual hosts the Memory usage patterns are not acceptable.
Goals: Store all information about a Virtual Host in a libdbi (http://libdbi.sf.net) accessible database (includes MySQL, PgSQL, SQLite and Oracle) and overcome performance problems of Apache with thousands of Virtual Hosts. By using a database to store virtual hosts, no restart of Apache is required to add, remove, or disable a host. Storing host information in a database also provides many Administration advantages such as making it easily accessible from PHP or any other language.
Implementation: A proof of concept has been completed and works. An initial version is viewable at:
http://cvs.sourceforge.net/viewcvs.py/mod-auth/mod_vhost_dbi/src/
Completed Features:
Dynamically set various PHP settings like Safe Mode, or the OpenBaseDir.
Store Virtual Hosts in a SQL database
Planned Features:
Change most Apache Configuration Directives on a per-virtual host basis
Allow any php.ini setting to be tweaked
Suexec Support
Support for mod_log_sql (http://www.outoforder.cc/projects/apache/mod_log_sql/) and other custom logging systems
Bandwidth Limits (ie 10 Gb/month limits)
Custom SQL Queries
Database Connection Pooling using mod_dbi_pool as a backend
Performance Tuning
Possibly a Shared Memory Cache
Packaging (RPM, Deb, Source, plus any others requested)
Web based Administration front end to SQL back end
Other Features requested by a Sponsor.
Complete Documentation in the Apache XML Documentation Format
Sponsorship: A Sponsor would receive priority for features they request, and immediate support. I would also work on integrating the module with your existing virtual hosting setup and help with conversion of hosting services to this module. For a major sponsorship I am willing to consider assigning ownership to the sponsoring entity.(close source it, sell it, do
whatever you like). If a sponser would like me to work on other features of Apache instead of this module, I am completely open to it.
About Me: My name is Paul Querna, and I am currently in College studying Computer Science. I have written several Apache 2
Modules(1), and have submitted patches (http://force-elite.com/~chip/patches/) for many other Open Source Projects including Apache, and PHP. I was previously employed at Cyan Worlds (http://www.cyanworlds.com) where, in addition to other tasks, I developed a custom Apache Authentication module for use in their MMO game URU (http://uru.ubi.com/us/). If you would like a complete resume or references, please contact me privately: chip at force-elite dot com
(1) Modules:
2.1 Authentication Project (http://mod-auth.sourceforge.net/) (several modules)
mod_dbi_pool (http://cvs.sourceforge.net/viewcvs.py/mod-auth/mod_dbi_pool/) - pools database connections
mod_svn_view (http://svn.outoforder.cc/svn/mod_svn_view/) - View Subversion Repositories in Style
mod_opengl_cg - Render OpenGL Scenes using Nvidia's Cg on a Servers Graphics Card(not currently public, mostly done as a proof of concept).
Non-Open Source modules used in production for a Major Game.
Problem: Apache 2 is not a good choice for massive virtual hosting environments. When a virtual host is added, it requires a complete restart of the Apache HTTPd. As anyone with many virtual hosts can tell you, the HTTPd takes a significant amount of time to start up with many virtual hosts. With thousands of Virtual hosts the Memory usage patterns are not acceptable.
Goals: Store all information about a Virtual Host in a libdbi (http://libdbi.sf.net) accessible database (includes MySQL, PgSQL, SQLite and Oracle) and overcome performance problems of Apache with thousands of Virtual Hosts. By using a database to store virtual hosts, no restart of Apache is required to add, remove, or disable a host. Storing host information in a database also provides many Administration advantages such as making it easily accessible from PHP or any other language.
Implementation: A proof of concept has been completed and works. An initial version is viewable at:
http://cvs.sourceforge.net/viewcvs.py/mod-auth/mod_vhost_dbi/src/
Completed Features:
Dynamically set various PHP settings like Safe Mode, or the OpenBaseDir.
Store Virtual Hosts in a SQL database
Planned Features:
Change most Apache Configuration Directives on a per-virtual host basis
Allow any php.ini setting to be tweaked
Suexec Support
Support for mod_log_sql (http://www.outoforder.cc/projects/apache/mod_log_sql/) and other custom logging systems
Bandwidth Limits (ie 10 Gb/month limits)
Custom SQL Queries
Database Connection Pooling using mod_dbi_pool as a backend
Performance Tuning
Possibly a Shared Memory Cache
Packaging (RPM, Deb, Source, plus any others requested)
Web based Administration front end to SQL back end
Other Features requested by a Sponsor.
Complete Documentation in the Apache XML Documentation Format
Sponsorship: A Sponsor would receive priority for features they request, and immediate support. I would also work on integrating the module with your existing virtual hosting setup and help with conversion of hosting services to this module. For a major sponsorship I am willing to consider assigning ownership to the sponsoring entity.(close source it, sell it, do
whatever you like). If a sponser would like me to work on other features of Apache instead of this module, I am completely open to it.
About Me: My name is Paul Querna, and I am currently in College studying Computer Science. I have written several Apache 2
Modules(1), and have submitted patches (http://force-elite.com/~chip/patches/) for many other Open Source Projects including Apache, and PHP. I was previously employed at Cyan Worlds (http://www.cyanworlds.com) where, in addition to other tasks, I developed a custom Apache Authentication module for use in their MMO game URU (http://uru.ubi.com/us/). If you would like a complete resume or references, please contact me privately: chip at force-elite dot com
(1) Modules:
2.1 Authentication Project (http://mod-auth.sourceforge.net/) (several modules)
mod_dbi_pool (http://cvs.sourceforge.net/viewcvs.py/mod-auth/mod_dbi_pool/) - pools database connections
mod_svn_view (http://svn.outoforder.cc/svn/mod_svn_view/) - View Subversion Repositories in Style
mod_opengl_cg - Render OpenGL Scenes using Nvidia's Cg on a Servers Graphics Card(not currently public, mostly done as a proof of concept).
Non-Open Source modules used in production for a Major Game.
