Best practices for running Perl?

Jonathan Vanasco nginx at
Fri May 1 00:49:07 MSD 2009

If you are truly committed to running Perl...

your best option would be this:

Port 80 : Nginx serves static and proxies to Perl system
Port 80xx : Perl system ; either apache+fcgi or apache+mod_perl ...  
you might be able to run things under perlbal via plugins, but i dunno.

The ideal situation would be running fcgi under nginx, but I found it  
a PITA to set up / maintain.

I caved in and ran some perl apps through apache+mod_fcgi , and its  
pretty nice.  Nginx handles most of the requests itself, so 2 apache  
children are handling a decent amount of traffic.

I have a few production projects running nginx on 80 and proxying back  
to mod_perl enabled apache.  They work great, but they're apps  
designed to utilize a bunch of MP + Apache2 features... nginx was  
brought in a few years ago to increase improvement... and it was  
miraculous: nginx does awesome queuing/handoff of the mp traffic, so  
all apache does is process mod_perl fast and instantly.  no lazy  
client issues, no wasting resources on bloated servers.

in practice.. i haven't found /that/ much difference between a fine- 
tuned Apache+ModPerl , PHP ( via apache+mod_php or fcgi ) , Python  
( django / pylons ) setup.  Sure you can have a system where php+fcgi  
is taking up 50MB of ram while Apache+ModPerl is taking up 150... but  
to tweak the performance to equal one another you'd use a PHP cache  
that takes up 135MB of ram... making everything pretty darn negligble.

More information about the nginx mailing list