exec_push

NGINX RTMP 模块中的 exec_push 指令允许在某些流事件发生时执行外部命令。

语法exec_push command [args];
默认值none
上下文
参数1+

说明

exec_push 指令用于在与流相关的特定事件发生时触发外部程序或命令,例如发布(开始直播)或关闭流。这在集成附加功能时尤其有用,例如转码、监控或日志记录,因为它可以在不需要人工干预的情况下自动执行任务。

该指令的一个独特之处在于它可以接受一个或多个参数,这些参数表示要执行的命令。通常的格式包括命令及其参数。指定多个命令的灵活性允许用户根据应用的需求创建复杂的工作流。每当相关的流事件发生时,指定的命令将以 NGINX 进程的上下文执行,从而实现即时处理。

但是,在实现 exec_push 时,用户必须对运行的命令保持谨慎,因为配置不当可能导致安全漏洞或性能问题。例如,长时间运行的进程可能会阻塞 NGINX 的工作进程,从而影响流媒体性能。

配置示例

application live {
    live on;
    exec_push /path/to/script.sh arg1 arg2;
}

确保对外部命令进行严格控制,以避免安全风险。

避免在 exec_push 中运行长时间运行的进程,因为它们可能会阻塞 worker 进程,从而影响整体性能。

验证外部命令的输出,以便妥善处理任何错误。

← 返回所有指令