Scale with Wowza Streaming Engine HTTP Origin applications

Wowza Streaming Engine™ media server software can send live and video-on-demand (VOD) streams directly to players that support the Apple HLS, Adobe HDS, Microsoft Smooth Streaming, and MPEG-DASH HTTP streaming protocols. When the number of player connections is likely to exceed the limits of a single Wowza Streaming Engine server, HTTP streams can easily be scaled by using an HTTP Origin mode application in Wowza Streaming Engine. When HTTP Origin mode is enabled, regular third-party HTTP caching proxies that are configured to cache video content can re-stream the content from the Wowza Streaming Engine application.

Contents


What is HTTP Origin mode?
HTTP Origin mode limitations
More resources

What is HTTP Origin mode?


Normally, when you enable an HTTP-based playback type with regular HTTP mode in Wowza Streaming Engine, every player connection is associated with a separate session. These separate sessions create unique player URLs and prevent HTTP proxies from caching the content. HTTP Origin mode is sessionless, which allows HTTP proxies to cache the content. The players are configured to connect to the proxy HTTP address instead of directly to the Wowza Streaming Engine application. The proxy will then retrieve the content as it's initially requested and cache it for a period of time so that it can send it to other players that request the same content. HTTP Origin mode can be used with regular HTTP caching proxies such as Squid, Apache, or Nginx. It can also be used with cloud-based caching services such as Amazon CloudFront, or with third-party CDNs such as Akamai or EdgeCast.

Regular HTTP caching proxies

Regular HTTP proxies such as Squid, Apache, or Nginx can be used in front of Wowza Streaming Engine in HTTP Origin mode. Generally, they must be provisioned manually ahead of time to connect to Wowza Streaming Engine. A load balancer would also be used to distribute the player connections evenly between the HTTP proxies in the cluster. By default, most HTTP proxies are designed to cache webpages, which are usually much smaller than a video stream. The proxies must be configured to cache video. If this isn't done, the video content isn't cached and every player request goes to Wowza Streaming Engine, negating the advantages of caching.

Amazon CloudFront

Amazon CloudFront is a ready-built HTTP caching proxy service that can be configured to run in front of a Wowza Streaming Engine server that's either running on Amazon EC2 or at a separate location. A CloudFront distribution can be configured quickly and easily from the AWS Management Console and it will scale up and down automatically as required without the need for a separate load balancer. When using a cloud service, the details of the stream origin are normally provided to the service and a unique URL is generated that's used in the players. The cloud service ensures that everything is cached and load-balanced properly.

3rd-party CDNs

Some third-party CDNs such as Akamai or EdgeCast can connect to Wowza Streaming Engine applications running in HTTP Origin mode and re-stream the content. As with Amazon CloudFront, they can usually be configured quickly from the CDN control panel and will scale up and down depending on how the CDN is configured. When using a CDN, the details of the stream origin are normally provided to the CDN and a unique URL is generated that's used in the players. The CDN ensures that everything is cached and load-balanced properly.

HTTP Origin mode limitations


Compared to regular HTTP mode, HTTP Origin mode has the following limitations:
 
  • Information about the separate connections isn't available directly in Wowza Streaming Engine. The information may be available from the proxy servers or caching service.
  • Modules that control or limit connections may not work as expected with HTTP Origin mode.
     
  • Query string variables that would be unique to a specific connection won't work as expected (for example, variables that establish if a player is allowed to connect to a stream, or variables that specify stream parameters such as wowzaplaystart and wowzaplayduration). The parameters that are set by the first player connection are the ones that are used and later changes to any parameter values are ignored. You can use a custom module to create stream aliases for each parameter combination.
     
  • Because connections to Wowza Streaming Engine are made from proxy servers and not directly from players, Support engineers at Wowza Media Systems can't diagnose problems that occur between the player and the proxy servers or caching service.

More resources