Mailman web interface on nginx

Grzegorz Nosek grzegorz.nosek at gmail.com
Wed Apr 2 18:40:20 MSD 2008


On Wed, Apr 02, 2008 at 04:18:07PM +0200, Renaud Allard wrote:
> Does someone run mailman web interface under nginx? Of course, without
> using another web server such as thttpd.
> 
> The biggest problem seems to be mailman urls are of the type:
> http://mailman.example.com/admin/mylist
> So the program to be run is admin with the "parameter" /mylist, while
> classic cgi config will try to run program mylist which does not exist.

Hi!

I haven't used the mailman web interface but if it uses CGI, I'll
shamelessly plug my fcgiwrap :) You can get it from here:

http://git.localdomain.pl/?p=fcgiwrap.git;a=summary

(though I'll probably move/copy it to github One Day(tm)).

After you compile it (requires libfcgi headers), start it via spawn-fcgi
or something similar. Set fastcgi_param DOCUMENT_ROOT $document_root in
your nginx config and fastcgi_pass for the URLs you wish, e.g. (not
tested):

server {
	listen 127.0.0.1:80;
	server_name mailman.example.com;
	root /var/www/mailman;

	fastcgi_param DOCUMENT_ROOT $document_root;
	location /admin {
		fastcgi_pass unix:/var/run/fastcgi/fcgiwrap.sock;
	}
}

The $document_root/admin file should be an executable CGI script,
otherwise fcgiwrap throws a 403. fcgiwrap is smart enough to notice
where the script name ends and where the PATH_INFO begins.

NOTE 1: do _not_ run fcgiwrap under any kind of elevated privileges.
It's a stupid app which doesn't drop permission etc.

NOTE 2: currently it only serves one request at a time (no
multiplexing), though you may simply start several instances (it's
pretty lightweight)

NOTE 3: not everything from the CGI spec is implemented but I'm slowly
getting there (particularly Location: /relative/uri is broken but hardly
anything cares, I think).

NOTE 4: nothing is done to the path_info part so you may run into issues
with special characters (e.g. %40 instead of @).

Shoot me an email if you run into any problems.

Best regards,
 Grzegorz Nosek





More information about the nginx mailing list