NGINX _ nginx 上的 rtmp nodejs 服务器配置:[emerg] bind() to 0.0.0.0:1935 failed (98: Address already in use

Posted

技术标签:

【中文标题】NGINX _ nginx 上的 rtmp nodejs 服务器配置:[emerg] bind() to 0.0.0.0:1935 failed (98: Address already in use)【英文标题】:rtmp nodejs server config on NGINX _ nginx: [emerg] bind() to 0.0.0.0:1935 failed (98: Address already in use) 【发布时间】:2020-11-25 16:38:18 【问题描述】:

我有 media server 在端口 1935 上运行。

我有一个子域:"streaming.foo.com"

我需要配置 nginx 才能访问 rtmp://streaming.foo.com

我用这个博客尝试了 RTMP Nginx 插件:

https://www.nginx.com/blog/video-streaming-for-remote-learning-with-nginx/

并配置/etc/nginx/nginx.conf文件。

rtmp 
    server 
        listen 1935;
        application live 
            live on;
            dash on;
            dash_path /tmp/dash; // what is this config??
            dash_fragment 15s;
        
    

但我从 nginx 收到此错误:

nginx[176987]: nginx: [emerg] bind() to 0.0.0.0:1935 failed (98: 地址已在使用中)

【问题讨论】:

【参考方案1】:

它是RTMP,而不是HTTP。 Nginx是一个web服务器,只能代理和平衡HTTP。不是一般的代理服务器。

使用通用代理或负载均衡器,例如HA Proxy

【讨论】:

Nginx 有一个 RTMP 模块。【参考方案2】:

你不能让两个服务监听同一个端口。

常见的解决方案是在另一个端口(比如说 19350)上配置真实服务(您的媒体服务),而不是在 nginix 上配置反向代理以将请求从暴露的端口(在本例中为 1935)转发到后端服务(在我们的示例中为 19350)。

抱歉,我不知道 nginix(我将此配置与 apache 一起使用),因此无法帮助您了解如何在其上配置反向代理。

【讨论】:

tnx 回复,我想知道我可以使用我的子域直接寻址 RTMP 服务器而不需要任何反向代理吗? 有这方面的消息吗?

以上是关于NGINX _ nginx 上的 rtmp nodejs 服务器配置:[emerg] bind() to 0.0.0.0:1935 failed (98: Address already in use的主要内容,如果未能解决你的问题,请参考以下文章

Nginx rtmp 推流(publish) 解析

windows10 vs2015编译 带nginx-rtmp-module 模块的32位nginx

nginx-rtmp模块简介

什么是 nginx 的 RTMP URL

nginx搭建rtmp协议流媒体服务器总结

Nginx rtmp模块nginx-rtmp-module指令详解