I wrote a config to match common problems with mailman and nginx. If you had and old config and need to rewrite URLs like cgi-bin/mailman/ there is a solution too.
server {
listen [::]:80 default;
root /usr/lib/cgi-bin/mailman/;
if ( $request_filename ~ mailman/.+ ) {
rewrite ^/mailman/(.*) /$1 permanent;
}
if ( $request_filename ~ cgi-bin/mailman/.+ ) {
rewrite ^/cgi-bin/mailman/(.*) /$1 permanent;
}
location = / {
rewrite ^ /listinfo permanent;
}
location / {
fastcgi_split_path_info (^/[^/]*)(.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
}
location /images/mailman {
alias /usr/share/images/mailman;
}
location /pipermail {
alias /var/lib/mailman/archives/public;
autoindex on;
}
}