Add Multiple Origins and Failover to Your CDN

TUTORIAL

One origin server is a single point of failure. The upstream editor on the Origins tab pools several origin servers behind one resource, with round-robin sharing, per-server weights, and backup servers that take over when the active ones go down.

A CDN resource fetches uncached content from its origin, and with a single origin server that fetch has a single point of failure. The Origins tab of the advanced settings solves this with upstreams: a pool of origin servers behind one resource.

Active servers share the traffic round-robin, weights skew the split, and backup servers sit idle until every active server is down. This tutorial opens the upstream editor, adds a second origin as a backup, and covers the per-server options.

Prerequisites

Step 1: Open the Origins tab

In the Resources table of your package, click the gear icon (Edit resource settings) on the resource’s row, then click Advanced settings, and open the Origins tab.

Origins tab with the upstreams pool and path-based locations

The tab has two panels. Upstreams is described on screen as a pool of origin servers that locations point at; Locations holds the path-based routing rules. This tutorial stays in the Upstreams panel; Route and configure a specific URL path on your CDN covers the other one.

Step 2: Open the upstream editor

Every resource starts with one upstream named default, and the origin you set on the General page is its only server. The card shows the upstream’s balancing pill (Round-Robin), its HTTPS pill, and the server line origin.example.com:443 marked Active with weight=1. A package allows up to 10 upstreams; the counter reads 1 / 10 here.

Upstreams panel with the default upstream card and its single origin server

Hover over the card and click the pencil (Edit) that appears in its top right corner. The Edit upstream dialog opens.

Step 3: Review the editor’s fields

Edit upstream dialog with the server list and the add server form

Top to bottom, the dialog holds:

  • Name: letters, numbers, spaces, underscores and hyphens. The name becomes the upstream identifier in your Locations, so pick something you will recognize when routing paths later.
  • Protocol: the HTTPS to origin toggle. On means the CDN connects to your origin over HTTPS; leave it off for plain HTTP origins. It applies to the whole pool, not per server.
  • Description: a free note for yourself; the placeholder suggests things like a primary origin or an EU failover.
  • Servers: the list of origin servers in the pool, each with its address, role badge and weight, plus per-server controls to edit, move up, move down and remove. Below the list sits the form that adds the next server.

Step 4: Add the second origin as a backup

Fill the add-server form at the bottom of the Servers section:

Setting Value
Address origin-2.example.com (an IPv4 address or a domain name)
Port Leave blank: it defaults to 443 for HTTPS and 80 for HTTP
Role Backup (failover only)

The Role dropdown is where the failover behaviour lives:

  • Active servers share traffic round-robin.
  • Backup servers take over only when every active server is down.
  • Disabled servers receive no traffic.

So for a failover setup, keep your main origin Active and mark the spare Backup. If you want both to share the load instead, make them both Active.

Click + Add Server. The entry joins the list, and the counter reads Servers · 2:

Upstream editor with two servers in the pool, one active and one backup, and the advanced per-server fields expanded

Step 5: Tune weight and health checks if you need them

Each server also has advanced fields, folded behind Show advanced settings in the add-server form (they are expanded in the screenshot above):

Setting Value
Weight Relative load share; higher means more requests. Defaults to 1, an equal share.
max_fails Failed connection attempts in a row before the server is marked unhealthy. 0 disables the check.
max_conns Cap on simultaneous active connections. 0, the default, means no cap.
route Sticky-session route label: requests with a matching cookie or header pin to this server.
service DNS SRV record service name. The hint itself says to leave it blank unless you know you need it.

For a plain failover pair none of these need changing. Weight becomes relevant once two or more servers are Active: a weight=2 server takes twice the requests of a weight=1 one.

Step 6: Save the upstream

Click Save in the dialog footer to apply the new pool; Cancel closes the editor and leaves the upstream as it was. Back on the tab, the upstream card lists the servers of the pool with their role badges.

What you’ve built

Your resource no longer depends on a single machine. Cache misses go to your active origin as before. If it stops answering, the CDN fails over to the backup you just added, with no DNS change and nothing visible to visitors.

The same editor scales with you: promote the backup to Active to share load, skew the split with weights, or add more servers to the pool, up to the package limits. And because the upstream keeps its name, every location that points at it follows the change automatically.

Can’t find what you need? Our engineers are available around the clock, from quick fixes to full infrastructure design.