nginx 和 mailman:默认转发到 listinfo

nginx 和 mailman:默认转发到 listinfo

我现在为让 mailman 和 nginx 运行而苦恼了好一阵子。一切运行正常,但如果用户只访问域名,我就会收到 HTTP 502 错误。

我如何告诉 nginx 它应该使用 /listinfo 作为默认位置?我无法通过部分指定它,try_files $uri /listinfo因为location /这样每个站点都会转发到 /listinfo。不知何故,这不能很好地与 cgis 配合使用...

这是我当前的配置:

server {
    listen [::]:80;
    root /usr/lib/cgi-bin/mailman/;

    location = /mailman/listinfo {
        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;
    }
}

我可以定义一个位置来匹配类似的 URL http://example.com/(没有给出任何参数)吗?

答案1

我通过添加仅匹配的规则修复了这个问题/

location = / { 
    rewrite ^ /listinfo permanent;
}   

如果有人有更好的解决方案,请发布!

相关内容