我运行了一个中等规模的Mailman系统,最近开发了一个问题,任何通过审核的消息都会消失,而不是传递到邮件列表。 这影响了我们的每一个邮件列表。
在独立的networking服务器上执行审核失败
Mailman环境分为两个服务器,前端和后端。 后端服务器处理Postfix和Mailman qrunner,而前端服务器托pipeApache和Mailman CGI脚本以pipe理列表。 两台服务器共享一个包含所有共享Mailman数据的NFS挂载。
所有正常的邮件stream程都正常工作,但是当列表pipe理员login到Web前端并批准消息时,消息不会有任何痕迹。
/usr/lib/mailman/mail/mailman 。 vette标记写入vette日志文件(后端服务器)该消息被批准。 vette日志文件(在前端服务器上),表示持有的邮件被批准。 此时,与所保留消息相关的.pck文件消失,但没有任何内容被传送,并且不会创build更多的日志条目。
主邮件服务器上使用Web界面进行审核
尽pipe我们通常不在后端服务器上运行Mailman Web界面(为了减less攻击面),但为了testing的目的,我运行了它。 当我们在后端服务器上使用Mailman Web界面时,邮件正常传递,我们看到这些日志条目。
smtp日志文件更新与收件人的数量和完成时间 post日志文件更新列表名称,消息ID和“成功”。 背景
将Mailman环境迁移到新服务器后,问题就开始了。 它本身并没有出现,这很可能是由于一些configuration错误导致的,我们还没有发现。 我们正在使用:
type=AVC日志条目。 此外,使用setenforce 0不能解决问题。 我在Mailman用户列表中find了一个相关的post ,但没有提供任何解决scheme。
当为Mailman使用多个服务器时,每个服务器都需要访问共享存储上的队列目录。 而已。
这是我build议,如果你有一个单独的服务器处理邮件的Web前端。
必须在共享存储上
queue_dir , inqueue_dir , outqueue_dir , cmdqueue_dir , bouncequeue_dir , newsqueue_dir , archqueue_dir , shuntqueue_dir , virginqueue_dir , badqueue_dir , retryqueue_dir , maildir_dir任何运行Mailman任务的服务器(包括前端Web服务器)都需要您的队列文件。
DATA_DIR , LIST_DATA_DIR除了邮件队列之外,还需要共享所有的列表configuration文件和保存的消息文件。
PUBLIC_ARCHIVE_FILE_DIR , PRIVATE_ARCHIVE_FILE_DIR如果您使用列表存档,那么您还需要共享存档目录。
应该在共享存储上
LOCK_DIR , PID_DIR , PIDFILE我不完全确定,但似乎锁和pidfiles应该位于共享存储上,这样如果qrunner服务器发生问题,显然这些进程exception结束。
SITE_PW_FILE , LISTCREATOR_PW_FILE您可能希望您的密码文件位于共享存储中,以便您可以确保无论您使用的是哪个服务器,主列表密码都能正常工作。
CONFIG_DIR如果你使用MTA=Postfix ,Mailman会自动在CONFIG_DIR中创build别名文件。 由于任何带有Mailman的机器都可以用来创build或删除列表,所以每台机器也应该能够正确地更新一个共享的别名文件。 (警告Emptor:有时候你想在每台机器上稍微不同地configurationMailman,这对于一个共享的CONFIG_DIR来说可能很困难。)
可以在共享存储上
LOG_DIR根据您的喜好,您可以将这些目录保留在本地,也可以将它们放在共享存储上。 我喜欢将所有日志都放在一个正在备份的中心位置,以便在将进程迁移到新的服务器之后,仍然可以使用旧日志。
TEMPLATE_DIR如果你已经定制了你的邮件模板(例如退回邮件),那么你可能也希望在共享存储上有这些模板。
SPAM_DIR我不知道SPAM_DIR实际使用了什么,但是build议所有的variables文件都在共享存储上,所以我在这里包括了这个。
仅限本地存储
WRAPPER_DIR , BIN_DIR , SCRIPTS_DIR , MESSAGES_DIR本地保存二进制文件和脚本是一个非常好的主意,这样您就可以利用操作系统提供的软件包进行升级,而不用担心保持共享二进制文件的同步。 邮件似乎是非常特别的,有关共享存储所涉及的任何服务器上运行完全相同的版本。 (编辑于2013-09-04)Mark Sapiro在Mailman-Users列表中提供了以下指导。
我的build议是标准的GNU Mailman共享所有var_prefix中的所有可变数据,这些数据是归档/,data /,lists /,locks /,logs /,qfiles /和spam /的所有目录,但是你有科学Linux(红帽衍生)软件包,所以请参阅http://wiki.list.org/x/KYCB上的常见问题解答,了解如何映射到您的安装。
http://wiki.list.org/x/wgB0上有一个常见问题解答。 它可能需要一些补充。 看看所有的链接。
(编辑在2013年9月4日)其实configuration目录应共享不是本地的。
马克·萨普罗(Mark Sapiro)在邮递员用户张贴2013年12月3日:
http://www.mail-archive.com/[email protected]/msg63365.html
“Mailman 2.1.12与Python 2.6+不兼容,在2.1.13中修正了这个问题。”
这个特定的问题是通过这个补丁修复的:
(我在这里不包括补丁,因为格式化会被损坏。)