Origin groups define where the CDN fetches content from for a CDN resource. Origin groups support load balancing and failover across multiple origins.
Origin group overview
One origin group can contain a single website, private bucket, or CDB EdgeCompute HTTP application, or multiple origins.
With multiple active origins, the CDN distributes requests using a round-robin algorithm. Failover and retry behavior — including when to activate backup origins and which failure conditions trigger a retry — depend on origin roles and the Use next upstream option. See Available options for details.
Origin group configuration
Add one or more origins to the group. For URL and S3 origins, Host header override is optional; when left empty, the CDN uses the Host header value from the CDN resource settings.
S3 storage
Select CDB for CDB Object Storage, Amazon for Amazon S3, or Other for another S3-compatible storage service. Egress from CDB Object Storage to the CDN is not billed.
⚠️
Without Origin Shielding, each cache miss on a CDN node sends a request directly to the S3 bucket. At scale, this can overload the storage cluster — enable Origin Shielding to consolidate edge cache misses through a shared shield cache and reduce requests to the S3 origin.
CDB Object Storage
CDB Object Storage does not require access keys. Select a storage and a bucket, or create them from the same lists.
1
Select CDB
Select S3 storage, then select CDB.
2
Choose the storage and bucket
In Storage, select an existing Object Storage or click Create storage. Creating a storage requires a Storage name and Location. Only Standard storage is supported.
In Bucket, select a bucket or click Create bucket.
Amazon S3 storage
Amazon S3 requires an access key ID and secret access key; the AWS guide explains where to find both values.
1
Select Amazon S3
Select S3 storage, then select Amazon.
2
Configure the bucket
Enter the storage details:
Enter the Access Key ID.
Enter the Secret access key.
Select the AWS region where the bucket is hosted.
Enter the Bucket name.
(Optional) Enter the Host header override.
Other S3 storage
Use Other for an S3-compatible service that is not CDB or Amazon. Create the required credentials in that provider's console.
1
Select another S3 service
Select S3 storage, then select Other.
2
Configure the bucket
Enter the storage details:
Enter the storage server Hostname.
Enter the Access Key ID.
Enter the Secret access key.
Enter the Region (optional) where the bucket is hosted.
Enter the Bucket name.
(Optional) Enter the Host header override.
URL origin
Use a URL origin for a website or IP address that does not require S3 authentication.
1
Select the origin type
Select URL.
2
Configure the origin
Enter the origin details:
In Origin source, enter the IP address or domain name without http:// or https://.
(Optional) Enter the Host header override.
(Optional) For ports other than 80 or 443, disable Use default port and enter the port.
3
Add more origins
(Optional) Click + Add origin and enter another source. The CDN distributes requests across active origins using a round-robin algorithm.
CDB EdgeCompute HTTP application
A CDB EdgeCompute HTTP application can serve as a native CDN origin. Requests reach the application directly on the same edge node, which avoids duplicate response headers, preserves client GeoIP data, and reduces latency.
ℹ️
Because the CDB EdgeCompute application runs on the same edge node as the CDN, the upstream address in CDN logs and metrics can appear as that node's IP rather than a remote origin address. This applies only when the origin type is a CDB EdgeCompute HTTP application, not when a CDB EdgeCompute hook is attached to a regular CDN origin.
1
Select the origin type
Select CDB EdgeCompute.
2
Select the application
In the CDB EdgeCompute application dropdown, select the HTTP application.
Available options
Multiple-origin configuration
For groups with multiple origins, configure their availability, roles, and failover behavior:
Enable or disable each origin.
Assign active and backup origins.
Enable or disable Use next upstream.
Origin availability
Each origin has the On toggle enabled by default, so the CDN can pull content from it. Disable the toggle to remove the origin from this group's load balancing; requests stop reaching it within 15 minutes.
ℹ️
At least one active origin must remain enabled.
Active and backup origins
New origins receive the Active status by default and participate in round-robin load balancing. Select Use origin as a backup to remove an origin from regular balancing and use it when the active origins meet the applicable failover conditions.
Use next upstream
Enable Use next upstream only when every origin contains the exact same content. When enabled via the Customer Portal, the CDN retries the request on the next available origin after connection errors or timeouts. Additional retry conditions — such as specific HTTP response codes — can be configured through the Create origin group API using the proxy_next_upstream array. If no origin is available, the CDN serves the last origin's response.
The resulting request behavior depends on the origin roles and option state:
Case
CDN request behavior
Use next upstream disabled; all origins active
The CDN returns the active origin's error response to the client without retrying
Use next upstream disabled; active and backup origins present
After a 5 s timeout or 5xx response from an active origin, the CDN tries the backup origins in list order. For a 4xx response, it returns the error to the client
Use next upstream enabled; no backup origins
After connection errors or timeouts, the CDN tries the remaining active origins in list order. If all active origins fail, the CDN serves the last origin's response
Use next upstream enabled; active and backup origins present
After connection errors or timeouts, the CDN tries the remaining active origins first, then backup origins, in list order
Origin group creation
Origin groups can be created directly from CDN resource settings or from the Origin groups page.
List groups by name, or retrieve one group by ID. A group with has_related_resources set to true is already attached to at least one CDN resource.
from gcore import CDB
client = CDB()
for og in client.cdn.origin_groups.list(name="my-origin-group", limit=10):
print(og.id, og.name, og.has_related_resources)
og = client.cdn.origin_groups.get(10001)
print(og.id, [(s.source, s.enabled, s.backup) for s in og.sources])
package main
import (
"context"
"fmt"
gcore "github.com/G-Core/gcore-go"
"github.com/G-Core/gcore-go/cdn"
)
func main() {
client := gcore.NewClient()
ctx := context.Background()
page, err := client.CDN.OriginGroups.List(ctx, cdn.OriginGroupListParams{
Name: gcore.String("my-origin-group"),
})
if err != nil {
panic(err)
}
for _, og := range page.Results {
fmt.Println(og.ID, og.Name, og.HasRelatedResources)
}
og, err := client.CDN.OriginGroups.Get(ctx, 10001)
if err != nil {
panic(err)
}
fmt.Println(og.ID, og.Name)
}
curl -X GET "https://api.cdb-staging.cdn.orange.com/cdn/origin_groups?name=my-origin-group&limit=10" \
-H "Authorization: APIKey $GCORE_API_KEY"
curl -X GET "https://api.cdb-staging.cdn.orange.com/cdn/origin_groups/10001" \
-H "Authorization: APIKey $GCORE_API_KEY"
Edit fields in the resource block and run terraform apply. With two origins, use_next and proxy_next_upstream make the CDN retry the next origin after a connection error or a timeout.
Point the CDN resource at another origin group and run terraform apply. The CDN resource stays. If apply reports an inconsistent origin_group_name, run terraform apply again.