我在wowza媒体服务器前使用nginx来缓存视频块。实时视频发布在wowza服务器上,wowza使它可以被HLS协议使用,HLS协议基本上是返回视频文件的一系列http GET调用。我的conf看起来像 -
location /live_proxy {
proxy_cache my_zone;
add_header X-Proxy-Cache $upstream_cache_status;
proxy_cache_valid any 10m;
proxy_pass http://wowza_server_ip:1935/live;
}
以上配置有效。但是在这里你可以看到wowza_server_ip被硬编码到conf文件中。我有多个wowza服务器,它们将位于nginx服务器后面,并且可以在任何这些wowza服务器上发布实时流。我有一个外部api,它告诉我们哪个wowza服务器正在发布一个流。那么有没有一种方法可以通过查询参数传递ip地址,以便nginx可以请求相应的wowza服务器。
视频消费网址示例 - http://nginx_ip:8080/live_proxy/myStream/playlist.m3u8
答案 0 :(得分:0)
使用上游:
upstream wowza_servers {
server xxx.xxx.xxx.xxx: 1935;
server xxx.xxx.xxx.xxx: 1935;
server xxx.xxx.xxx.xxx: 1935;
}
location /live_proxy {
proxy_cache my_zone;
add_header X-Proxy-Cache $upstream_cache_status;
proxy_cache_valid any 10m;
proxy_pass http://wowza_servers/live;
}