#pragma page-filename DOC/versions/4030650 == 6.23. Mailman and nginx == This FAQ will try to illustrate how to setup Nginx ( [[http://nginx.net/|http://nginx.net/]]) for Mailman support. Since Nginx does not supports CGI, we need an additional web server for serving CGI scripts. In this FAQ I use thttpd ([[http://www.acme.com/software/thttpd/|http://www.acme.com/software/thttpd/]]). First of all, lets configure thttpd so that it can serve the CGI scripts defined in our system (I'm using Debian Etch). Edit the /etc/thttpd/thttpd.conf and set: {{{ port=8000 # Make sure to disable chroot nochroot user=www-data host=127.0.0.1 # Serve all the CGI on the system dir=/usr/lib/cgi-bin cgipat=/** }}} Note that, by default, thttpd will generate index pages for directories and you usually do not want this. You can either recompile thttd, undefining the GENERATE_INDEXES macro in config.h, or you can `chmod 711` the individual directories. Restart thttpd with {{{ /etc/init.d/thttpd restart }}} Now lets configure nginx. Create a new file in /etc/nginx/sites-available, as an example `lists.domain.com`, an create a symbolic link in /etc/nginx/sites-enabled to enable the new site. This configuration assumes that a virtual server can be dedicated to Mailman. {{{ server { listen 80; server_name lists.domain.com; }}} {{{ access_log /var/log/nginx/lists.domain.com.access.log; }}} {{{ # Show in the main page the list info rewrite ^/$ /mailman/listinfo last; }}} {{{ location /mailman/ { # Use thttpd for CGI proxy_pass http://127.0.0.1:8000/mailman/; }}} {{{ proxy_set_header Host $host; #proxy_intercept_errors on; } }}} {{{ location /images/mailman/ { alias /var/lib/mailman/icons/; } }}} {{{ location /pipermail/ { alias /var/lib/mailman/archives/public/; }}} {{{ #error_page 404 /404.html; }}} {{{ # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www/nginx-default; } } }}} NOTES: Nginx does not transfer, by default, the ''Server'' header from the proxied server response. Moreover, if you enable `proxy_intercept_errors`, then all the errors from thttpd will be handled by nginx (but you need to create error pages, since a default nginx installation only has a custom 50x.html page). This can be useful if you want to hide thttpd usage. ''Last changed on Thu Nov 29 13:36:32 2007 by'' Manlio Perillo = 7. What's new with Mailman 2.1? = Converted from the Mailman FAQ Wizard This is one of many [[../Frequently Asked Questions|Frequently Asked Questions]].