# Mailman web interface on nginx

**URL:** <https://www.ruby-forum.com/t/mailman-web-interface-on-nginx/133687>\
**Category:** NGINX\
**Created:** [April 2, 2008, 4:28pm UTC](https://www.ruby-forum.com/t/mailman-web-interface-on-nginx/133687 "2008-04-02T16:28:34Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Renaud\_Allard](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/9fc348/32.png) [@Renaud\_Allard](https://www.ruby-forum.com/u/Renaud_Allard)\
**Post date:** [April 2, 2008, 4:28pm UTC](https://www.ruby-forum.com/t/mailman-web-interface-on-nginx/133687/1 "2008-04-02T16:28:34Z")

</div>

Hello,

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](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.

Any help appreciated.

Best Regards

---

<div class="post-metadata">

**Author:** ![Renaud\_Allard](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/9fc348/32.png) [@Renaud\_Allard](https://www.ruby-forum.com/u/Renaud_Allard)\
**Post date:** [April 2, 2008, 4:54pm UTC](https://www.ruby-forum.com/t/mailman-web-interface-on-nginx/133687/2 "2008-04-02T16:54:07Z")

</div>

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](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](http://git.localdomain.pl/?p=fcgiwrap.git;a=summary)

(though I’ll probably move/copy it to github One Day™).

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](http://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 N.
