mod_perl2 User's Guide
By Stas Bekman, Jim Brandt
By Stas Bekman, Eric Cholet
Date: Wed Nov 07 21:20:11 2001
Traffic: 1,800,000 Unique Page Loads per day
Almost everything on the site runs in mod_perl. We have 4 systems running the site, one static server (PIII 450, Linux, Apache/mod_proxy). Two database servers (Dual P800, FreeBSD, Mysql) which are replicated, and the one mod_perl server (PIII 800, FreeBSD, Apache/mod_perl). The idea to use the proxy server to intercept any requests for text or images which was not dynamic came directly from the mod_perl guide (http://perl.apache.org/docs/1.0/guide/). It's been a rough ride sometimes, as I've been in the process of learning the guts of Apache and more about perl than I ever thought I'd need to know. Since the site first started, I've migrated from a Module based system, to Apache::Registry (I wasn't writing good enough perl for the module based system to work well), and more recently have been migrating high volume scripts back to the Module/Handler based system. That's been the true benefit of mod_perl in developing this site. It's been a learning process as we roll out a new application or area of the site, watching our hit load go up and up, and then spending hours looking for performance bottlenecks in code which was never intended to run as often as it does. mod_perl gives us an incredibly fast development time. Sometimes, the speed of development does mean than lower quality code creeps into the production environment, but it allows us (me) to get things done which would take much much longer in another application environment. Perls "there are many ways to do it" extends into mod_perl, meaning that I can try something new quickly, and come back later to optimize it. Amoung the features we have on the site: Application layer security, based on a custom written Session tracking system. A recursively threaded forum system on every page, this system accounts for the bulk of the page views. It's also real time in tems of both comments being added, and ratings to the messages propigating through. User uploaded data through out the site, we allow players to track their characters, add meta information to database entries. Detailed web based administration system based on the Application security layer. The speed of development of perl, coupled with the rich resources of CPAN, and the incredible power of mod_perl have made this site possible. Running the same site in other technologies would have been possible, but would either require more hardware, or more time to develop.