timeout

NGINX RTMP 模块中的 `timeout` 指令定义了在因闲置而关闭流会话之前等待的最长持续时间。

语法timeout number;
默认值none
上下文
参数1

说明

timeout 指令用于对流会话的持续时间施加限制,这对于维护服务器资源并防止空闲会话占用宝贵连接非常重要。当会话达到指定的超时阈值时,如果在该期间内没有交互(例如流被推送或播放),服务器将终止该会话。该指令在管理多个流的场景中尤为有用,管理员可以确保不活跃的流不会无限期地停留,从而提高服务器的效率和性能。

timeout 指令的参数是以毫秒为单位指定的时间持续量,可根据应用需求设置为不同的值。它在实时和按需流传输的上下文中工作,会监测空闲时间。如果超过 timeout 中定义的持续时间,服务器将自动关闭流连接,确保系统资源得到有效利用。设置该值时应谨慎,过短可能导致合法流会话过早终止,而过长可能允许不活跃会话持续存在,可能导致资源耗尽。

需要注意的是,该指令不会影响正在主动推送或播放的会话;它专门监测流传输期间的不活动。因此,管理员应平衡超时配置,以优化资源管理和用户体验。此外,由于该指令是 RTMP 模块的一部分,它专门用于处理实时流处理过程,与更广泛的 NGINX 配置中可用的其他超时设置有所不同。

配置示例

rtmp {
    server {
        listen 1935;

        application live {
            live on;
            timeout 30000; # Set timeout to 30 seconds
        }
    }
}

过短的超时值可能会在用户暂时不活动时断开他们的连接,导致令人沮丧的体验。

请确保超时值足够,能容纳预期的用户交互;否则可能导致意外断开连接。

timeout 指令仅适用于 RTMP 会话,不影响 HTTP 连接或其他 NGINX 功能。

← 返回所有指令