多协议、性能稳定、丰富API的流媒体服务器软件
对于HTTP流如何启用跨域资源共享(CORS)?
跨域资源共享Cross-origin resource sharing (CORS)是一种允许从当前Web资源所在域名之外的域名网站访问它的HTTP资源的机制。 通常,你需要用CORS Header来使得基于HTML5的视频播放器可以从其它域名的网站来访问另外一个域名的Wowza Streaming Engine的HTTP流。 这篇文章介绍了如何在Wowza Streaming Engine Manager中配置cross-origin HTTP 访问控制参数,从而使得一个域名的Web网站可以访问其它域名的HTTP流。

目录


在Wowza Streaming Engine Manager管理界面中配置CORS header

自定义的CORS header相关参数

默认的CORS header

为HTTP Provider配置CORS header

在Wowza Streaming Engine Manager管理界面中配置CORS header


这个部分介绍了如何在Wowza Streaming Engine Manager管理界面中配置cross-origin resource sharing (CORS)。 虽然,它使用默认的live应用作为例子,但其实这个配置说明适用于任何Wowza应用。

  1. 在Wowza Streaming Engine Manager管理界面的Applications菜单,点击live,然后再点击Edit

    注意: 所有类型的Wowza应用都支持CORS header。 如果你要创建一个新的Wowza应用,请在菜单中点击Add Application,然后选择你需要的Wowza应用类型。只要根据界面提示操作即可。
  2. live应用界面,在Cross-origin resource sharing (CORS)边上打勾,然后点击Save

    wowza


选择这个选项后,将启用默认的CORS header参数,它针对所有基于HTTP的流传输协议。 这些CORS header将在所有你选择HTTP流协议Playback Types上生效。 如果是要针对某一类HTTP流协议,你可以通过管理Playback Types来实现,或者你可以用配置参数来启用某一类HTTP流的CORS功能。

注意:默认情况下,MPEG-DASH流的CORS header总是启用状态的。你可以将mpegdashCORSHeadersEnabled参数设置为false来修改这个策略。

自定义的CORS header相关参数


在你启用CORS header之后,你可以通过下面的参数,来调整默认的参数值。 每一个CORS参数都带有一个[protocol]前缀,包括cupertinosanjosempegdash、或smooth,或者http表示所有的HTTP流协议。

Path
Name
Type
Value
Notes
/Root/Application/HTTPStreamer [protocol]CORSHeadersEnabled Boolean false 启用某一个HTTP流协议的CORS header。默认值是false
注意:如果你将http流协议的这个参数设置为falsempegdash仍然是启用CORS header的。 你可以用mpegdashCORSHeadersEnabled参数来禁用mpegdash流协议的CORS header。
/Root/Application/HTTPStreamer [protocol]CORSHeadersEnableAge Boolean false 设置为true时,在Header中会增加 Age CORS Header。默认是false
/Root/Application/HTTPStreamer [protocol]CORSHeadersEnableMain Boolean true 当启用CORS header时,如果将其设置为true,在Header中会增加 Main CORS header。默认值为true
/Root/Application/HTTPStreamer [protocol]CORSHeadersAddAge String
-blank-
这个参数可以让你在Age list中增加某个CORS header,格式为管道符隔开的name:value 对。header的名字必须以Access-Control-开头(例如Access-Control-Max-Age)
/Root/Application/HTTPStreamer [protocol]CORSHeadersRemoveAge String
-blank-
这个参数可以让你从Age list中去除某个CORS header。要删除的Header名字用逗号隔开。
/Root/Application/HTTPStreamer [protocol]CORSHeadersAddMain String
-blank-
这个参数可以让你在Main list中增加某个CORS header,格式为管道符隔开的name:value对。header的名字必须以Access-Control-开头(例如Access-Control-Allow-Credentials)。
Root/Application/HTTPStreamer [protocol]CORSHeadersRemoveMain String
-blank-
这个参数可以让你从Main list中去除某个CORS header,要删除的Header名字用逗号隔开。

用Wowza Streaming Engine Manager管理界面添加新的参数


按如下操作进行:

  1. 在Wowza Streaming Engine Manager管理界面点击Application菜单,然后再点击应用名(例如live)。

  2. 在应用主界面的Propertiestab页,点击Quick Links导航条上的Custom

  3. Custom部分,点击Edit

  4. 点击Add Custom Property,在Add Custom Property对话框中设置PathNameType以及Value,然后点击Add:

  5. 点击Save,然后重启应用,让修改生效。

默认的CORS header


CORS headers (Main)


  • Access-Control-Allow-Origin: *
  • Access-Control-Allow-Credentials: true
  • Access-Control-Expose-Headers: Date, Server, Content-Type, Content-Length
  • Access-Control-Allow-Methods: OPTIONS, GET, POST, HEAD
  • Access-Control-Allow-Headers: Content-Type, User-Agent, If-Modified-Since, Cache-Control, Range

CORS headers (Age)


  • Access-Control-Max-Age: 60

为HTTP Provider配置CORS header


Wowza Streaming Engine 软件有一些内置的HTTP Provider,另外它还允许让你添加自定义的HTTP Provider,用以向调用者提供更多的信息。 默认情况下,内置的HTTP Provider在响应中提供了CORS header。 你可以在HTTP Provider中添加自定义参数来禁用CORS header,例如:
<HTTPProvider>
    <BaseClass>com.wowza.wms.http.HTTPServerInfoXML</BaseClass>
    <RequestFilters>serverinfo*</RequestFilters>
    <AuthenticationMethod>admin-digest</AuthenticationMethod>
    <Properties>
        <Property>
            <Name>httpCORSHeadersEnabled</Name>
            <Value>false</Value>
            <Type>Boolean</Type>
        </Property>
    </Properties>
</HTTPProvider>