in reply to File Server for cgi scripts

If you have the opportunity to use mod_perl with Apache as has been mentioned, I'd like to suggest that you look into the PerlRequire. PerlRequire allows you to specify a startup script (typically called startup.pl). In that script I usualy list as many of the modules (.pm) files, as use/require statements, that I'll be using from within the server environment as possible. I also write my sites as modules instead of straight CGIs for a variety of reasons, this being one of them.

mod_perl will execute that script at server startup, loading in much of the website. The importiant thing is that this is done before apache forks it's children, so much of the codebase can stay pre-loaded/pre-compiled in shared memory. Copy-on-write is a big win here.

This makes for a slighly slower startup time, but the improvements in memory consumption and initial request performance make for better overall performance.

With mod_perl turned all the way up (no PerlRunOnce, etc.), you'll get better performance at the cost of greater memory usage, though with the improved performance you can usualy tune down the number of servers.

Another configuration with mod_perl/Apache is to put a non-mod_perl apache instance in front of the mod_perl instance and have the non-mod_perl server handle all of the static content requests (like images, pdfs, plain html files, etc.). That keeps the mod_perl servers in reserve to do the dynamic content generation.

If you want to do this, I'd suggest looking into using Apache's RewriteEngine directives. Mandrake used to set up multiple instances of apache this way out of the box.

hth,

Kyle