我刚刚在我的专用服务器上安装了全新的 apache&ffserver。一切正常,我可以在我的 apache 服务的 flashplayer 中播放我的电影(因为我用 H264/AAC 编码我的流)。但是 flashplayer 在 ffserver 的端口(对我来说是 8090)上播放流。有些人在防火墙后面,无法播放我的直播,因为 8090 被我们屏蔽了。我怎样才能只使用端口 80 ?
在此先感谢,并原谅我糟糕的英语!
我刚刚在我的专用服务器上安装了全新的 apache&ffserver。一切正常,我可以在我的 apache 服务的 flashplayer 中播放我的电影(因为我用 H264/AAC 编码我的流)。但是 flashplayer 在 ffserver 的端口(对我来说是 8090)上播放流。有些人在防火墙后面,无法播放我的直播,因为 8090 被我们屏蔽了。我怎样才能只使用端口 80 ?
在此先感谢,并原谅我糟糕的英语!
任何时候只有一个服务可以监听给定的 IP 和端口组合。
你可能有两个选择:
考虑使用像 nginx 这样的反向代理。将 apache 移到 8080 端口,让 ffserver 在 8090 上,并在 80 上设置 nginx。
然后将 nginx 配置为代理位置 /video 的请求,例如,到 127.0.0.1:8090 和其他所有到 127.0.0.1:8080。这将对您有所帮助。
现在客户端只连接 80 端口。
如前所述,设置 mod_proxy 可能是最简单的方法之一,因为您所要做的就是向您已经拥有的 apache 添加配置。
如果您想使用 mod_rewrite 为同一主机名下的特定 URL 执行此操作...例如,如果您将 www.yourhost.com 作为 apache 并且 /video 下的所有内容都来自 ffserver,您可以这样做:
如果您想将其保留在相同的硬件上,但不关心它们是否解析为相同的名称,您还可以在不同的 IP 地址上设置一个虚拟网络接口,以便 eth0 是运行在 192.168.1.1 上的 apache 和运行 ffserver在 eth0:1 上,IP 地址为 192.168.1.2。然后它们可以在 DNS 中各自拥有自己的名称,并且由于它们是不同的接口,因此您可以在同一个机器上的 80 端口上运行 2 个服务。
http://ffmpeg.org/sample.html
听起来您在配置文件中设置了端口并重新启动了ff服务器?
我对此不熟悉,但它应该是一个简单的修复。
您只能让一个应用程序在给定端口上侦听,因此很短-不可能在端口 80 上同时拥有这两个应用程序。但是有一些方法可以解决它,也许http://httpd.apache.org/docs/2.2/mod/ mod_proxy.html会给你一些想法。基本上找到一种 ffserver 流量通过 apache 的方式。