超时

源码

timeouts 允许你配置服务器读取、写入和 TCP、TLS 和 DoH 服务器的空闲超时。

描述

默认情况下,CoreDNS 被配置为使用合理的服务连接超时。然而,在某些情况下,例如当 CoreDNS 通过慢速移动数据连接提供服务时,默认超时值并不是最优的。

此外,一些路由器会在使用 DNS over TLS 或 DNS over HTTPS 时保持连接。允许使用一个更长的空闲超时有助于提升性能,并减少与此类路由器有关的问题。

timeouts“插件”允许你配置 CoreDNS 服务器的读取、写入和空闲超时。

语法

timeouts {
	read DURATION
	write DURATION
	idle DURATION
}

对于任何未提供的超时,都会使用默认值,这些默认值可能会因服务器类型而异。至少必须指定一个超时,否则应省略整个 timeouts 块。

示例

启动一个 DNS-over-TLS 服务器,该服务器会在端口 5553 上接收传入的 DNS-over-TLS 请求,并使用 /etc/resolv.conf 中定义的名称服务器解析请求。此代理路径使用传统的 DNS。已配置 10 秒的读取超时、20 秒的写入超时和 60 秒的空闲超时。

tls://.:5553 {
	tls cert.pem key.pem ca.pem
	timeouts {
		read 10s
		write 20s
		idle 60s
	}
	forward . /etc/resolv.conf
}

启动一个 DNS-over-HTTPS 服务器,该服务器类似于上一个示例。只为 1 分钟配置了读取超时。

https://. {
	tls cert.pem key.pem ca.pem
	timeouts {
		read 1m
	}
	forward . /etc/resolv.conf
}

在端口 1053 上启动一个标准的 TCP/UDP 服务器。已配置读取和写入超时。超时设置只适用于服务器的 TCP 侧。

.:1053 {
	timeouts {
		read 15s
                write 30s
	}
	forward . /etc/resolv.conf
}