关于HTTP cache 内容源(origin)
当Wowza Streaming Engine 作为一个 HTTP cache架构下的内容源(origin)时:
- 边缘是一个HTTP cache架构中的边缘服务器,而不是另一个Wowza Media Server。边缘服务器从Wowza Media Server的内容源中拉(PULL)流并将流的分片数据缓存下来。所有的用户播放客户端都将收到同样的缓存数据。
-
边缘服务器与Wowza Streaming Engine HTTP 内容源(Origin)服务器之间的通信是(无状态的) sessionless (不支持基于session的通信)。这导致以下结果:
- 在请求播放的URL中不能添加任何查询参数。这包括VOD点播时的wowzaplaystart 和 wowzaplayduration 以及nDVR播放时的 wowzadvrplayliststart 和 wowzadvrplaylistduration 。
- 依赖Session的信息(例如, 连接数合计数量) 是无法得到的。
- 在请求播放的URL中不能添加任何查询参数。这包括VOD点播时的wowzaplaystart 和 wowzaplayduration 以及nDVR播放时的 wowzadvrplayliststart 和 wowzadvrplaylistduration 。
配置
要使得HTTP cache架构能正常运行, HTTP streaming的以下几个方面和之前是不同的:
- Wowza Streaming Engine 的session 标识符(可以理解为session ID) (_wXXXXXXXXX) 必须从播放列表和manifest数据中清除。你将Wowza Media Server 配置为HTTP cache origin时,它将自动完成这个工作(请看下面的介绍)。
- HTTP头中的Cache-Control必须被设置允许客户端对内容进行缓存。
- 随机标识符(Random identifier)必须被添加在直播流切片URL上 ,这样将使得在缓存看来,每一个编码的session都是唯一的。
配置服务器的属性参数
要把Wowza Streaming Engine上的一个应用配置为Http 缓存的内容源(Origin),你必须将下面的属性参数添加到这个应用的[install-dir]/conf/[application]/Application.xml 文件中。
HTTPStreamer 的属性参数
将下面的属性添加到HTTPStreamer/Properties 中:
<!-- HTTP origin mode: on, off --> <Property> <Name>httpOriginMode</Name> <Value>on</Value> </Property> <!-- Apple HLS: cache control --> <Property> <Name>cupertinoCacheControlPlaylist</Name> <Value>max-age=1</Value> </Property> <Property> <Name>cupertinoCacheControlMediaChunk</Name> <Value>max-age=3600</Value> </Property> <Property> <Name>cupertinoOnChunkStartResetCounter</Name> <Value>true</Value> <Type>Boolean</Type> </Property>LiveStreamPacketizer 的属性参数
将httpRandomizeMediaName 属性添加到 LiveStreamPacketizer/Properties 中。如果你要将Wowza nDVR 配置为HTTP 缓存源(origin),你必须同时将这个属性添加到DVR/Properties 中。
<Property> <Name>httpRandomizeMediaName</Name> <Value>true</Value> <Type>Boolean</Type> </Property>
HTTP 缓存技术
要了解更多关于HTTP 缓存技术,请参考以下内容:
- Apache HTTP Server (mod_cache module)
- Squid Cache
- Varnish Cache
- Application Request Routing (Microsoft IIS)