Scaling with Wowza HTTP Origin applications

Media servers running Wowza Streaming Engine™ 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 media server, the HTTP streams can easily be scaled by using a special 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.


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 session-less, 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 other 3rd-party Content Delivery Networks (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 media servers. 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 the Wowza media server, 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 media 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 3rd-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 on the Wowza media server. 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 the Wowza media server are made from proxy servers and not directly from players, support personnel at Wowza Media Systems can't fully assist in diagnosing playback problems if the problem is between the player and the proxy servers or caching service.

More resources

How to configure a Wowza server as an HTTP caching origin
Cloud Technologies
How to use CDNs and services to distribute live streams (push publishing)
Load balancing overview
Originally Published: For Wowza Streaming Engine on 01-13-2015.

If you're having problems or want to discuss this article, post in our forum.