要定义一个项目列表来分配给后缀中的许多不同的选项,你可以使用逗号分隔的列表,如下所示:
relay_domains = example.com,example.net,example.org
或者像这样的哈希映射:
relay_domains = hash:/etc/postfix/relay_domains
然后使用postmap将该文件的键值项转换为bdb文件。
我的问题是:是否有性能的原因使用哈希映射,而不是只是指定列表?
在这两种情况下,我没有数据或指标来决定性能是否重要。 我会试着解释涉及这两种情况的背景过程。
当postfix守护进程运行时,这两者之间几乎没有什么区别,因为:
main.cf ,postfixparsingconfiguration文件,将其保存到内存中,直到postfix重新启动或pipe理员发出postfix reload命令后才再次检查文件。 现在,如果你想改变列表,那么
main.cf ,您应该调用postfix reload 。 它将强制主守护程序重新读取configuration文件并终止subprocess,以便它可以拾取新的configuration。 资源 postfix reload 。 但我不明白(1)通过手动调用 postfix reload重新启动subprocess和(2)重新启动由哈希表触发的subprocess已被修改之间的差异。
这里有一些知识,阅读后缀手册页 ,特别是守护进程部分。 这有助于我理解(1)通过手动调用postfix reload重启subprocess和(2)重启哈希表触发的subprocess已被修改的区别。
Postfix拥有称为master的主进程。 它第一次援引,并作为“主”scheme。 它调用其他守护进程,如smtpd,qmgr,按需重写。
有四种types的后缀守护进程
postfix reload将使进程重新读取它。 这包括: 主人 。 postfix reload将使进程重新读取它。 这包括: qmgr , tlsmgr , validation 。 postfix reload会加速configuration更改。 这包括: 平凡重写 , 皮卡 , postscreen , 代理地图 postfix reload是不必要的,因为当再次运行时,进程会重新读取main.cf。 这包括smtp , smtpd , 本地和其他进程旁边的三个分类上面。 如果使用main.cf存储列表,但不调用postfix reload ,那么
main.cf直到您调用postfix reload : 当你使用散列表来存储列表,然后你后贴图的文件
否则,看起来上面两种情况之间的performance差异很小。 如果你很less改变表格,那么差别可以忽略不计。 例外的情况是,如果您经常执行postfix reload或更改哈希表,那么在qmgr进程中将会是性能问题。 看到这里和这里
更多信息: Postfix性能自述文件