send_timeout
`send_timeout` 指令设置向客户端传输响应的超时时间。
Media streaming server based on nginx-module-rtmp
语法send_timeout timeout;
默认值none
上下文
参数1
说明
send_timeout 指令用于 NGINX RTMP 模块中,用来定义服务器在认为连接超时之前向客户端发送数据所允许的最长时间。如果发送响应所用时间超过此限制,服务器将关闭该连接。在媒体流场景中这尤其有用,因为长连接很常见,且需要高效管理资源。\n\n该指令接受单个参数,用于指定超时时长。该参数可以用秒数指定,或带有后缀,如 'm' 表示分钟,'h' 表示小时。需要注意的是,这个超时仅在连接保持打开但服务器没有发送任何数据时生效;如果正在传输数据,则不会触发超时。对该值进行适当调优有助于避免在高延迟网络或流媒体空闲期间客户端连接出现问题。\n\n在配置 send_timeout 时,必须考虑流媒体客户端的预期行为。超时时间过短可能会在长时间处理期间过早切断客户端,而超时时间过长则可能使服务器资源被占用过久,在高峰期导致过多连接积聚。因此,通常建议测试不同的值以为特定的流媒体场景找到最优设置。
配置示例
rtmp {
server {
application live {
live on;
send_timeout 30s;
}
}
}⚠
确保指定的超时值不要过短,因为这可能导致客户端被过早断开连接。
⚠
请记住,send_timeout 仅适用于无响应的连接;如果数据在传输中,该超时不会生效。
⚠
如果多个应用使用不同的超时设置并同时运行,请确保在正确的上下文中设置 send_timeout 以避免混淆。