ngx_mail_core_module
Last updated
Was this helpful?
Last updated
Was this helpful?
默认不构建此模块,可使用 --with-mail
配置参数启用。
-
说明
语法
listen address:port [ssl] [backlog=number] [rcvbuf=size] [sndbuf=size] [bind] [ipv6only=on\|off] [so_keepalive=on\|off\|[keepidle]:[keepintvl]:[keepcnt]]
;
默认
——
上下文
server
为将接受请求的服务器的套接字设置地址(address
)和端口(port
)。可以仅指定端口。地址也可以是主机名,例如:
IPv6 地址在方括号中指定(0.7.58):
UNIX 域套接字使用 unix:
前缀指定(1.3.5):
不同的服务器必须侦听不同的 address:port
对,不能重复。
ssl
参数指定该端口上接受的所有连接均应以 SSL 模式工作。
listen
指令可以指定几个额外的参数给套接字相关的系统调用。
backlog=number
在 listen()
调用中设置 backlog
参数,该参数限制挂起的连接队列的最大长度(1.9.2)。默认情况下,在 FreeBSD、DragonFly BSD 和 mac OS上,backlog
设置为 -1,而在其他平台上则设置为 511。
rcvbuf=size
设置侦听套接字的接收缓冲区大小(SO_RCVBUF
选项)(1.11.13)。
sndbuf=size
设置侦听套接字的发送缓冲区大小(SO_SNDBUF
选项)(1.11.13)。
bind
此参数指示对给定的 address:port
对进行单独的 bind()
调用。事实上,如果有多个有相同端口但地址不同的 listen
指令,并且其中一个 listen
指令在给定端口(*:port
)的所有地址上监听,nginx 只会将绑定(bind()
)到 *:port
。要注意的是,这种情况下将进行 getsockname()
系统调用,以确定接受连接的地址。如果使用 ipv6only
或 so_keepalive
参数,则对于给定的 address:port
对,将始终进行单独的 bind()
调用。
ipv6only=on|off
此参数确定(通过 IPV6_V6ONLY
套接字选项)监听通配符地址 [::]
的 IPv6 套接字是否仅接受 IPv6 连接,还是接受 IPv6 和 IPv4 连接。默认情况下,此参数是打开的。启动时只能设置一次。
so_keepalive=on|off|[keepidle]:[keepintvl]:[keepcnt]
此参数为监听套接字配置「TCP keepalive」行为。如果省略此参数,则套接字的操作系统设置将生效。如果将其设置为值 on
,则会为套接字打开 SO_KEEPALIVE
选项。如果将其设置为值 off
,则将关闭套接字 SO_KEEPALIVE
选项。某些操作系统支持使用 TCP_KEEPIDLE
、TCP_KEEPINTVL
和 TCP_KEEPCNT
套接字选项在每个套接字的基础上设置 TCP Keepalive 参数。在此类系统(当前为 Linux 2.4+、NetBSD 5+ 和 FreeBSD 9.0-STABLE)上,可以使用 keepidle
、keepintvl
和 keepcnt
参数进行配置。可以省略一个或两个参数,在这种情况下,相应套接字选项的系统默认设置将生效。例如,
会将闲置超时时间(TCP_KEEPIDLE
)设置为 30 分钟,将探测间隔(TCP_KEEPINTVL
)保留为系统默认值,并将探测计数(TCP_KEEPCNT
)设置为 10 个探测。
-
说明
语法
mail { ... }
;
默认
——
上下文
main
在指定的邮件服务器指令中提供配置文件上下文。
-
说明
语法
protocol imap
| pop3
| smtp
;
默认
——
上下文
server
imap
:143、993
pop3
:110、995
smtp
:25、587、465
-
说明
语法
resolver address ... [valid=time] [ipv6=on\|off] [status_zone=zone]
;
resolver off
默认
resolver off;
上下文
mail、server
可以使用可选端口(1.3.1、1.2.2)将地址指定为域名或 IP 地址。如果未指定端口,则使用端口 53。以轮询方式查询名称服务器。
在 1.1.7 版本之前,只能配置一个名称服务器。从 1.3.1 和 1.2.2 版本开始,支持使用 IPv6 地址指定名称服务器。
默认情况下,nginx 将在解析时同时查找 IPv4 和 IPv6 地址。如果不需要查找 IPv6 地址,则可以指定 ipv6=off
参数。
从 1.5.8 版本开始,支持将名称解析为 IPv6 地址。
默认情况下,nginx 使用响应的 TTL 值缓存应答。可选的 valid
参数可覆盖它:
在1.1.9 版本之前,无法调整缓存时间,nginx 始终将应答缓存 5 分钟。
为防止 DNS 欺骗,建议在适当安全的受信任本地网络中配置 DNS 服务器。
特殊值 off
禁用解析。
-
说明
语法
resolver_timeout time
;
默认
resolver_timeout 30s;
上下文
mail、server
设置 DNS 操作的超时时间,例如:
-
说明
语法
server { ... }
;
默认
——
上下文
设置服务器的配置。
-
说明
语法
server_name name
;
默认
server_name hostname;
上下文
mail、server
设置服务器名称,在以下场景中使用的:
最开始的 POP3/SMTP 服务器问候语中
SASL CRAM-MD5 身份验证中的盐值中
如果未指定指令,则使用计算机的主机名。
-
说明
语法
timeout time
;
默认
timeout 60s;
上下文
mail、server
设置超时时间,在代理到后端开始之前使用。
设置代理服务器的协议。支持的协议有 、 和 。
如果未设置该指令,则可以基于 指令中指定的为人熟知的默认端口来自动检测协议:
可以使用参数 --without-mail_imap_module
、--without-mail_pop3_module
和 --without-mail_smtp_module
禁用不必要的协议。
配置用于查找客户端主机名以将其传递给的名称服务器,以及代理 SMTP 时的 命令。 例如:
可选的 status_zone
参数(1.17.1)启用对指定区域中的请求和响应的 DNS 服务器统计信息的[收集]功能(../http/ngxhttp_api_module.md#resolvers)。该参数为我们的部分。
如果启用了 命令的传递,则在连接到 SMTP 后端时,在 EHLO
命令中