Edgio

Caching and Delivery

This content refers to Caching and Delivery v2. For legacy Caching and Delivery (v1), see the Control Caching and Delivery v1 User Guide.
Caching and Delivery delivers content via HTTP and HTTPS for all file formats. Both full (entire file) and progressive (range request) downloads are supported.
Navigate to Configure > Caching and Delivery in the navigation pane. The Caching and Delivery for page is displayed.

Configuration List

The Caching and Delivery page displays a list of the Caching and Delivery configurations for the currently-selected Company and Account.
The following information is shown for each configuration:
  • Source Hostname – The private URL prefix used by Edgio to retrieve and cache content from your origin server (not visible to end-users)
  • Source Path- the URL path, if any, to use with the Source Hostname
  • Protocol - The level of HTTP protocol security to use when delivering your cached content to end-users
  • Published Path - The URL path, if any, to use with the Published Host

Filter the List of Configurations

Use the Filter by dropdown menu and the filter text field to filter the list by specific fields:
To filter the list:
  1. Make a selection in the drop-down menu.
  2. Enter a value in the filter text field.
  3. Press the Enter key on your keyboard. The list is reduced to include only configurations that match the filter.
Display the original list by clicking the x icon in the filter text field.

Read-Only and Hidden Capabilities

For particular use cases, configurations may have certain fields presented as either read-only or hidden (masked).
An entire configuration may be read-only. Or, an editable configuration may have source and/or published fields hidden or read-only.
Source and published fields are:
  • Source hostname
  • Source path
  • Published hostname
  • Published path
Hidden fields are masked with asterisks.
Use CaseUser Capabilities
Entire configuration is read-only.Users can only view the configuration. They cannot edit, clone, or revert the configuration.
Configuration is editable, but specific fields are read-only and/or hidden.Users can modify all but read-only/hidden fields.
Users can edit, clone, and revert the configuration.

Create a New Configuration

To create a new configuration, click the + new button, and the Create configuration screen will be displayed.

Service Profiles

Each new configuration is based on a Service Profile. Service Profiles define the configuration structure and specify default and mandatory options that must be applied on every configuration. A Service Profile can serve as both a guide and a guardrail for the type of content your configuration will serve (characterized by a Use Case).
The Use Case and Service Profile drop-down menus are disabled:
  • In existing configurations.
  • After you have selected a Published and Source Protocol while you are creating a new configuration.
If you have not already saved the new configuration but you want to choose another Service Profile, you can do so by exiting out of the Create configuration screen and creating a new configuration by clicking the + new button.
If you wish to modify a Service Profile or migrate, add, or remove a Protocol Set for an existing configuration, contact your Account Manager.

Page Organization

Configuration options are grouped into sections by functional category, such as Content Location. Each section displays all of the related options made available by the Service Profile. For sections other than Content Location, the most commonly used options are always displayed. Any remaining options are grouped under the Advanced drop-down menu in each section.
Initially, only the Content Location section is visible. Once you select both a Published protocol and a Source protocol, the rest of the sections and configuration options become available. The combination of a Published protocol and Source protocol is known as a “protocol set.”
After you’ve filled in the configuration fields in each section, click Activate (at the bottom of the page) to enable your new configuration.

Content Location

SettingInformation RequestedPurposeSelecting the Right Option
Published protocolThe level of HTTP protocol security to use when delivering your cached content to end-usersTo ensure your content is delivered with the level of security you requireThe Published protocol and Source protocol drop-down menus are disabled:
- In existing configurations.
- After you have selected a Published and Source protocol while you are creating a new configuration.
If you have not already saved the new configuration but you want to choose another Published and Source protocol, you can do so by exiting out of the Create configuration screen and creating a new configuration by clicking the + new button.
Published hostnameThe fully qualified domain name that will be used in all public links (Published URLs) to your cached content
A URL that includes the Published Hostname is referred to as a Published URL.
To direct your users to the Content Delivery service (instead of your origin)In the Published hostname field, enter the published hostname specified in the Welcome Letter associated with your Edgio Account or a CNAME if desired.
The published hostname provided by Edgio will be in a form similar to:
accountname.vo.llnwd.net
If you prefer to publish under a different hostname, you can use a DNS CNAME record to alias (point) your desired name to Edgio published hostname.
- IP addresses are not accepted. You must enter a fully qualified domain name.
- If you can’t find the Edgio-published hostname in your Welcome Letter, please contact Edgio Support.

If you want to use a directory name “alias” for a particular origin path, you can add the alias by entering it in the Published URL path field.
If needed, you can add a regex expression to the start of the Published hostname field, but you must have permissions to do so. Without the permissions, you are restricted as follows:
- When creating or cloning a configuration, you cannot add regex to the field.
- If a configuration has regex in the field, you cannot clone the configuration.
- When updating a configuration that has regex in the field, you cannot modify any part of the Published hostname.
Please contact your account manager if you need assistance with any of these operations.
Published URL pathThe path portion of a published URLTo allow your published hostname URL to be more specific and include a path.Enter the path enclosed in forward slashes.
- This field must contain a value and defaults to /
- If you have the PERMISSION_CONFIGURE_SSUI_REGEX permission, you can include regular expressions in the path.
This path ends with a filenameWhether the last component in the path is a fileFile names are not validated by extension, so when the Published URL path or Source URL path does not end with a slash, it is treated as a file name.
This field and Only publish files with these extensions are mutually exclusive.
Place a checkmark in the checkbox if the path ends in a file name.
If you check this option, you must make entries in the Published URL path and Source URL path fields
Only publish files with these extensionsFile extensions to publishProvides flexibility, allowing you to specify file extensions to publish. More flexible than using This path ends with a filename, which allows you to specify only one file.
This field and This path ends with a filename are mutually exclusive.
Place a checkmark in the checkbox, then enter file extensions (excluding a leading period) in the field below the checkbox.
Host HeaderThe value to include in the HTTP Host header when communicating with your origin serverTo help prevent end-users from requesting content directly from your origin.If you plan to block requests to your origin based on the value of the Host header, select Published Hostname or enter a value in the Value field.
If you are hosting more than one origin on a single server, please see the additional information below.
For more information, see Host Header Details.
Source protocolThe HTTP protocol(s) to use when retrieving content from your origin (when the content is not found in the cache or has expired in cache)To ensure your content is retrieved with the level of security you requireSee Published Protocol in this table.
Source hostnameThe fully qualified domain name or IP address of your origin serverThe Content Delivery service needs to know where to get your content when users first request it and also when it needs to be refreshed in the cacheEnter the domain name or IP address of your origin server in the Source hostname field.
If you enter a domain name, it must be fully qualified.
Source URL pathThe specific path of the source hostname that contains content.The Content Delivery service needs to know the specific path because a source hostname can contain many paths.If your content is all in a particular path on your origin, or you added a directory name “alias” with the Published Hostname for a particular origin path, you can enter the origin path by clicking the Add Path link
This field must contain a value and defaults to /
Source portThe HTTP port number to use when communicating with your origin server, using the Origin Host and Origin Path you specifiedIf you are using a port other than the default (80) for HTTP, the Content Delivery service needs to know which port you’ve chosenLeave the default port number for HTTP unless you are using another port number. If so, enter the new port number in the Origin HTTP Port Number field.
The default for HTTPS is 443, and this is the value used by Edgio for all HTTP requests to origin (the value is not editable).
Location of Content SourceThe location of the content you want the Content Delivery service to deliver (the “origin”)The Content Delivery service needs to know where to find your content when users first request it and also when it needs to be refreshed in the cacheIf your content is not stored with Edgio, choose Outside Edgio infrastructure. Otherwise, choose the appropriate Edgio Storage location.
If you choose Outside Edgio infrastructure in Location of Content Origin, the following additional fields are displayed:
- Origin Protocol
- Origin Host
- Origin Path
- Origin HTTP Port
If you choose a storage option in Location of Content Origin, the following fields are displayed: Origin Path
If you are using Edgio storage but your storage option is not shown, your Content Delivery service is not fully configured. If this is the case, please contact Support.

Host Header Details

Browsers usually include the origin domain name of the requested URL in the HTTP Host header. You can use this behavior to detect and block such requests on your origin, denying those with a Host header that matches your domain name and accepting those that match either your Published hostname or another value you enter in the Value field.
If you are hosting more than one origin on a single server and want to block based on Host headers, don’t use Published hostname; instead, enter a value in the Value field. If you are hosting more than one origin on a single server and don’t want to block them based on Host headers, choose Origin Host.

Example Settings

Configuration FieldValueNotes
Published protocolHTTPSAccept only HTTPS requests for cached content
Published hostnamepublished.host.comUse a CNAME alias instead of the name provided in the Welcome Letter (need to set up the CNAME separately)
Published URL path/pubimages/Use the pubimages directory to identify the content in cache uniquely.
Source protocolHTTP AlwaysAlways use HTTP to communicate with the origin server
Source hostnameorigin.host.com
Source URL path/images/Directory path to the origin content; note that this doesn’t need to match the path (if any) for the Published Hostname
Origin HTTP Port80Use the default HTTP port (no need to change anything)
Host HeaderPublished HostnameBlocks most browser requests made directly to the origin
Using the example configuration settings above, if favicon.ico is not cached for this configuration or has expired in the cache, a request to https://published.host.com/pubimages/favicon.ico will result in an origin request for http://origin.host.com/images/favicon.ico, with an HTTP Host header of published.host.com.

Caching Rules

SettingInformation RequestedPurposeSelecting the Right Option
TTLWhether to override the default method for determining if an object in the cache is expired.In some cases, you may want to take explicit control over object expiration times (TTL - “Time To Live”).Make selections in the TTL presets field.
-To allow Content Delivery to calculate TTL, select Not selected.
- To make your TTL settings, select Configure manually and configure the Minimum TTL and Maximum TTL fields. When you make manual settings, you must also configure the Cache Generated Responses field.
- To set TTL to a specific length of time, select one of the preset times. When you opt for preset values, you must also configure the Include generated responses and Cache Generated Responses fields. See Caching Best Practices for additional information.
Cache large files on first requestWhether you want any request for an object to force the full object to be cached, even if the request is canceled.This feature is intended for large file downloads and is not recommended for caching website objects (such as image, CSS, and JavaScript files).
Ignore “No cache” headerWhether Content Delivery should ignore certain Cache-Control headers when determining whether or not to cache an object retrieved from your originYou may want to cache objects regardless of origin settings that attempt to turn off cachingIf you want to ignore the followingCache-Control headers:
- Cache-control: no-cache
- Cache-control: no-store
- Cache-control: private
- Pragma: no-cache
Enable this option. Otherwise, leave it disabled.
Query String CachingWhether to use URL query terms to determine whether or not objects are cachedYou may want to increase cache efficiency by ensuring certain objects are not duplicated due to variations in their query termsChoose the option that caches the minimum number of objects necessary based on query parameters:
- Strip no query terms from the cache key
- Strip all query terms from the cache key
- Exclude specific query terms
- Keep only specific query terms
For the Exclude specific query terms and Keep only specific query terms options, you must enter a comma-separated list of the query terms to be excluded or included.
Vary Headers
For static content configurations only
Which Vary response header fields Content Delivery should use when differentiating versions of an object in the cacheContent Delivery stores a different version of a requested object for each unique set of request header fields specified by the Vary header.
If the Vary header specifies request header fields that change frequently, multiple copies of the same object may be stored in the cache.
To control this behavior, you can configure Content Delivery to ignore all Vary headers or specific Vary headers when caching and retrieving objects.
All of the Vary headers associated with the object are still maintained and passed on to the client in the response.
- If you only want to cache a single version of an object regardless of its Vary header fields, choose Ignore all Vary headers
- If you want to cache a new version of an object whenever any of its Vary header fields changes, choose Do not ignore Vary headers
- If want cache a new version of an object whenever all but certain specified Vary header fields change, choose Ignore specific vary headers and select the Vary headers fields to ignore
Partial CacheWhether to use Partial Caching to improve cache performancePartial Caching is a Content Delivery feature that caches commonly-requested portions of content requested using HTTP GET ranges. This optimization can significantly improve performance for large media files.To enable this setting, check the Partial Cache checkbox, and in the associated field, enter a Regex value that matches the object URLs you want to optimize
N Byte DownloadWhether to download the first “n” bytes to improve cache performanceContent Delivery can automatically cache a specified number of bytes from the beginning of cached files. This optimization can improve first-byte response times in some scenarios.To enable this setting, check the N Byte Download checkbox, and in the associated field, enter a Regex value that matches the object URLs you want to optimize

Caching Best Practices

Use the Not selected setting unless you have a specific reason to override how the Time to Live (TTL) is calculated.
By default, Content Delivery considers an object “stale” (expired from cache) if the number of seconds specified by the associated Cache-Control: s-maxage or Cache-Control: max-age header has elapsed since initial caching or since the last freshness check, or if neither header is present if the date and time in the Expires header have passed. The order of precedence is Cache-Control: s-maxage, Cache-Control: maxage, then Expires.
If no explicit freshness information is supplied (there are no Cache-Control: s-maxage, Cache-Control: max-age or Expires headers), and a Last-Modified header is present, the CDN will by default use the adaptive cache freshness algorithm to calculate remaining TTL, based on 20% of the age of the cached response, subject to a floor of 3 seconds and a ceiling of 3 days.
If you need to override (ignore) the above behavior, you can use the Configure manually option to specify a new TTL value using the Time to live (TTL) drop-down menu.
You can also control whether generated responses are cached using the Cache Generated Responses checkbox (for the Custom option) or Including Generated Responses (for other values in the drop-down menu).
Generated responses are HTTP responses that are generated dynamically (“dynamic content”). These responses often do not include any of the cache-control headers needed to determine TTL and are not cached by default to avoid caching personalized or user-specific responses.

By default, Edgio defines a generated response as one that is missing all of the following headers:
- Expires
- Last-Modified
- Cache-Control: max-age
- Cache-Control: s-max-age
If you choose the Custom option for Time to live (TTL), you can change the cache freshness algorithm’s parameters using Specify custom floor and ceiling cache values.
If desired, the floor (minimum) can be raised, and the ceiling (maximum) can be lowered or raised. If min and max are set equal to each other, the TTL becomes explicit rather than adaptive.

Arc Light

You can use Arc Light to customize how Content Delivery reacts to HTTP requests and responses. Rules can be triggered when a request or response meets pre-defined conditions, such as a pattern match. Rules are designed based on specific customer needs.
This option is available only for websites & apps configurations

Configuration Overview

Use Arc Light to customize how Content Delivery reacts to the following HTTP request and response types:
  • Requests
    • Any
    • Origin only
    • Edge only
  • Responses
    • Any
    • Origin only
    • Client only
For each of the above request and response types, you can assign one rule. Content Delivery will then execute that rule each time it receives the associated request or response type. The rule will be executed on the Edge Server that receives the request or response.
To enable Arc Light for a specific request or response type, check the checkbox next to the desired type (example: x Rules on Edge Request). To assign a rule, click one of the rules in the list below the request/response type.
Rules can be triggered when a request or response meets pre-defined conditions, such as a pattern match with:
  • The URL, file name, or query term
  • The IP address
  • The value of a specified HTTP header
  • A cookie
  • The geographic location of a request (using the IP address)
When a rule is triggered, it can perform a variety of actions, such as:
  • Controlling which CORS headers are sent in response to a client request
  • Adding a cookie that contains geolocation information
  • Adding specific HTTP headers
  • Appending special “keys” to cache keys Enabling or disabling GZIP compression
  • Controlling whether the requested content is cached and setting content TTLs
Rules are designed based on specific customer needs. If you need to use Arc Light or want more information on the types of rules that can be created, please contact your Account Manager or Solutions Engineer.

Configuration Settings

SettingInformation RequestedPurposeSelecting the Right Option
Which rules do you want to enable?If you want to create a new rule, the type of HTTP request or response to associate it withContent Delivery can trigger rules for several types of requests and responses(see the options below)
Rules on Any RequestRequest typeContent Delivery can trigger rules for several types of requestsTo trigger a rule on any request received by a EdgioEdge Server, check the Rules on Any Request checkbox, and select one of the predefined rules in the list
Rules on Edge RequestRequest typeContent Delivery can trigger rules for several types of requestsTo trigger a rule on client requests to a EdgioEdge Server, check the Rules on Edge Request checkbox, and select one of the predefined rules in the list
Rules on Origin RequestRequest typeContent Delivery can trigger rules for several types of requestsTo trigger a rule on Edgio requests to your Origin, check the Rules on Origin Request checkbox, and select one of the predefined rules in the list
Rules on Any ResponseResponse typeContent Delivery can trigger rules for several types of responsesTo trigger a rule on any response received by a EdgioEdge Server, check the Rules on Any Response checkbox, and select one of the predefined rules in the list
Rules on Origin ResponseResponse typeContent Delivery can trigger rules for several types of responsesTo trigger a rule on responses received from your Origin, check the Rules on Origin Response checkbox, and select one of the predefined rules in the list
Rules on Client ResponseResponse typeContent Delivery can trigger rules for several types of responsesTo trigger a rule on responses received from the requesting client, check the Rules on Client Response checkbox, and select one of the predefined rules in the list

Media Delivery

Content Delivery supports “seeking” or “scrubbing” (skipping back and forth) within FLV and MP4/H.264 video files. Seeking is controlled via parameters specified in the query terms of the request URL.
SettingInformation RequestedPurposeSelecting the Right Option
Enable FLV ScrubbingWhether to allow a video client to skip forward and back (seek) within FLV files based on parameters specified in the query terms of the request URL.Custom clients may want to provide the “seek” capability (“forward” and “back” buttons)To enable this feature, check the Enable FLV Scrubbing checkbox
Enable MP4/H.264 ScrubbingWhether to allow a video client to skip forward and back (seek) within MP4 files based on parameters specified in the query terms of the request URL.Custom clients may want to provide the “seek” capability (“forward” and “back” buttons)To enable this feature, check the Enable MP4/H.264 Scrubbing checkbox

Optimization

SettingInformation RequestedPurposeSelecting the Right Option
Type of CompressionWhether to use Gzip compression when delivering XHTML, JavaScript, CSS, and other text filesCompressed objects are delivered more quickly, potentially improving the user experience- If you want to provide all compressed files from your origin server, choose the Gzip Passthrough option
- If you prefer to have the Content Delivery service compress files when the requesting client can accept them, choose Gzip on-the-fly
- If you need to modify Gzip compression defaults, choose Custom, then either Gzip on-the-fly or Gzip Passthrough, and enter your Gzip modification extensions
- You can also choose No compression if none of your files should be delivered compressed
- For more information on this feature, see Gzip Details
TCP AccelerationThe “profile” to use when accelerating the transfer of IP packets by modifying default TCP parametersIn certain circumstances, you may want to change the TCP Acceleration profile to optimize your delivery performanceWhen TCP Acceleration is enabled, the XDLL profile is the most efficient in many cases.
TCP Acceleration is an advanced configuration setting and should only be changed if you’re an expert user.
Enable chunked response to client
for static content configurations only
Whether the Content Delivery service can maintain open TCP connections to your origin serverIf there is a cache “miss” and your origin doesn’t provide a Content-Length header, this option allows Content Delivery to serve the requested content more efficiently (in “chunks”)We recommend you enable this option. Otherwise, new TCP sessions must be established for each new request to origin, and cache miss requests are delivered only when the entire object has been transferred from origin.

GZip Details

When Gzip Passthrough is enabled, and a client indicates (via HTTP request header) that it prefers to receive compressed content, theContent Delivery service will serve a compressed version of the requested object if one is available on the origin server.
Gzip Passthrough is available to all customers. If it is not enabled for you, please contact Edgio Support.
If Gzip On-the-fly is selected, the Content Delivery service creates, caches, and delivers Gzip-compressed content as needed.
Compressible file types include: action, ashx, asmx, asp, aspx, axd, cfm, css, css3, csv, do, doc, docx, htm, html, js, jsf, json, jsp, php, portal, rtf, svg, svgz, tsv, txt, xhtml, xml, site root (/), and extensionless URLs.

Headers & Methods

SettingInformation RequestedPurposeSelecting the Right Option
Client AnalyticsWhether you want the Content Delivery service to provide geographic user information when requesting content from your originYou may want to capture, analyze, and report on user geographic information internally.To use this feature, check the Client Analytics checkbox.
The geo information is provided to your origin server via two request headers: X-IP-Geo-Country and X-IP-Geo-All.
The geo fields provided are continent, state, city, dma_id, and asn.
Add client IP address to origin request header
for static content configurations only
Whether you want the Content Delivery service to provide the requesting client’s IP address in a custom header when requesting content from your originYou may want to capture, analyze, and report on user IP information internally.To enable this feature, check the Add client IP address to origin request header checkbox, and enter the header names containing the client IP address.
The default header name is True-Client-IP.
Note that the above headers are in addition toX-Forwarded-For, which is always provided to the origin.
POST RequestsWhether you want to accept or ignore POST requests from clientsIf you are using a custom client to display content, you may want to communicate analytics or other information to your origin. Alternatively, you may want to convert POST requests to GET requests or ignore them.- To ignore all POST requests, select Disable HTTP POST requests. Content Delivery will respond with an HTTP 413 Request Entity Too Large status code to all POST requests.
- To accept POST requests and pass them through to your origin, select Enable HTTP POST requests. If a POST request body exceeds 500 MB,Content Delivery will respond with a 413 Request Entity Too Large status code.
- To accept POST requests but treat them as GET requests, select Enable HTTP POST requests, and check the Discard request body on POST request checkbox. POST bodies will be discarded.
Add custom request headerWhether you want to include custom headers and values wheneverContent Delivery makes a request to your originIf you want to tag all requests from Content Delivery for later analysisTo add a custom origin request header, enter a unique header name and value and. Click the ”+” button to add additional headers.
Add Edgio server IP address when responding to clientWhether to provide clients with the IP address of the Content DeliveryEdge Server responding to their requestsIf you are using a custom client to display content, and you are also capturing performance-related data via the client, you may want to include the Content DeliveryEdge Server IP address for later analysis and reporting.
The IP address will be provided in the X-IP-Address response header.
To enable this feature, check the Add Edgio server IP address when responding to client checkbox
Add custom response headerWhether you want to include custom headers and values whenever Content Delivery responds to a client requestIf you are using a custom client to display content, you may want to provide it with information that uniquely identifies the Content Delivery service, Edgio Account, etc.To add a custom client response header, enter a unique header name and value and. Click the ”+” button to add additional headers.
Enable Custom Debug HeadersWhether you want to enable Custom Debug HeadersBy making an HTTP content request with special “Custom Debug Headers,” including a shared secret specific to your service, you can retrieve cache-related information about individual content objects and prevent others from accessing the information.In the Debug Headers field, enter one or more “tags” to include in the Custom Debug Headers. Then in the Secret Key To Request Debug Information field, enter the secret key (shared secret) provided by Edgio when the Custom Debug Headers feature was enabled.
For more information, see Secure Cache Diagnostics.

Secure Cache Diagnostics

When troubleshooting caching issues, customers can directly access diagnostic information about cached content.
Content Delivery customers with Configuration Self Service can request cache-related information about individual content objects and prevent others from accessing the information.
To enable this feature, check the Enable Custom Debug Headers checkbox in the Request and Response Headers section of Content Delivery Configuration Self Service, and provide a comma-separated list of object properties that should be returned in the response, along with a Secret Key to authenticate the request.
Diagnostic response headers can include the following information:
  • Whether or not a response is cacheable
  • How the cache responded to a request (hit, miss, etc.)
  • The number of seconds before the cached response will be considered stale (TTL)
  • The total number of seconds representing the freshness lifetime of the response (age + TTL) and how the value was determined (headers, overrides, adaptive TTL, etc . )
  • When the feature is activated, you will be provided with a unique shared secret.
The properties that can be requested, and their associated response headers and values, are:
Request KeyResponse HeaderReturn Values
is-cacheableX-LLNW-Dbg-Is-CacheableYes
No
Negative
cache-hit-typeX-LLNW-Dbg-Cache-Hit-TypeHIT
MISS
REFRESH_HIT
REF_FAIL_HIT
REFRESH_MISS
CLIENT_REFRESH_MISS
IMS_HIT
NEGATIVE_HIT
DENIED
OFFLINE_HIT
REDIRECT
ttlX-LLNW-Dbg-TTLn{...} seconds
an integer followed by a space and the string “seconds”
fresh-life-totalX-LLNW-Dbg-Fresh-Life-Totaln{...} seconds
an integer followed by a space and the string “seconds”
If the secret is invalid, the X-LLNW-Dbg-Hdrs header will be ignored, and the request will be processed without it.
Request and response example:
RequestResponse
GET http://www.customer.com/object.txt HTTP/1.1...X-LLNW-Dbg-Hdrs: is-cacheable,cache-hit-typeX-LLNW-Dbg-Secret: sharedsecretHTTP/1.1 200 OK...X-LLNW-Dbg-Is-Cacheable: Yes...X-LLNW-Dbg-Cache-Hit-Type: HIT

Failover

Normally when the CDN receives a 404 (Not Found), 503 (Service Unavailable), or 504 (Gateway Timeout) response from your origin, the error is passed back to the requesting client. You can modify this configuration option as follows:
For 404 errors:
  • Serve “stale” content from the CDNCache, or
  • Request content from a “backup host” (with or without a path), or
  • Redirect to a custom “Not Found” URL.
For 503 and 504 errors:
  • Request content from a “backup host” or
  • Redirect to a custom “Service Unavailable URL.”
Failover URLs must match their configuration within the CDN
For 404 error redirects, the original request is reissued to the fallback URL with any modifications still in place
503 or 504 errors may have been generated by the origin but could also be generated by CDN if a connection can’t be made to your origin
SettingInformation RequestedPurposeSelecting the Right Option
Serve stale content instead of 404 errorIf the requested content is cached but stale (expired), and there is an HTTP 404 status when requesting a fresh version from your origin, this field indicates whether you want to pass the 404 status back to the client or serve the stale content insteadIf an object has expired in the cache and your origin server returns a 404 (Page Not Found) error when Content Delivery attempts to get a fresh copy of the object, you may want to serve the expired object instead of allowing the client to handle 404 messages.If you don’t want the client to handle 404 messages, and it is acceptable to serve stale content instead, check the Serve stale content instead of 404 error checkbox.
If there is no cached object, a 404 message will still be returned to the browser.
Request content from backup host on 404 errorIf there is an HTTP 404 status when requesting fresh content from your origin, this field indicates whether to use a backup origin (hostname only) before handling the 404 statusIf your primary origin returns a 404 status, and you have a backup origin, you may want Content Delivery to try the backup before handling the error.
Use custom “Not Found” pageWhether you want to pass HTTP 404 status messages back to the client or serve a custom error page insteadIf an object has expired in the cache, and your origin server returns a 404 error to Content Delivery, you may want to serve a custom error page rather than allowing the client to handle the 404 message.To take control over clients’ content when the origin returns a 404, enter the fully qualified URL of the content to serve.
Request content from backup origin URL on 404 errorIf the origin responds with an HTTP 404 status upon request for fresh content, this field indicates whether the request should be sent to a backup URL path before handling the 404 statusIf your primary origin returns a 404 status, and you have a backup origin, you may want Content Delivery to try the backup before handling the error.To serve content from a backup URL path if the primary origin responds with a 404 status, enter the fully qualified path on the backup origin.
- You can specify either the HTTP or HTTPS protocol and a port number if desired.
This option is required when using the Intelligent Ingest feature of Origin Storage
Request content from backup host on 5xx errorIf there is an HTTP 5xx status when requesting fresh content from your origin, whether to try a backup origin before handling the 5xx statusIf your primary origin returns a 5xx status, and you have a backup origin, you may want Content Delivery to try the backup before handling the error.To serve content from a backup origin if the primary origin responds with a 5xx status, enter the backup origin’s fully qualified hostname.
Specific ports are not supported.
Use custom “Service Unavailable” pageWhether you want to pass HTTP 503 and 504 status messages back to the client or serve a custom error page insteadIf an object has expired in the cache, and your origin server returns a 503 Service Unavailable or 504 Gateway Timeout error to Content Delivery, you may want to serve a custom error page instead of allowing the client to handle the error message.
If you want to take control over the content displayed by clients when there is a 503 or 504 error from the origin, enter the fully qualified URL of the content to serve.

Content Security

IP Access Control

This section allows you to allow or deny access to content based on IP addresses and geographic locations (“geo-fencing”).
Content Delivery Configuration Self Service provides access control using IP addresses and geographic locations (“geo-fencing”). When configuring an Account, you can associate lists of IP addresses and groups of geographic locations with the Account and specify whether to allow or deny each. When managing IP address lists, you can also view whether they are currently in use and which Accounts they are associated with (or limited to).
SettingInformation RequestedPurposeSelecting the Right Option
Enable IP Access ControlWhether you want to “allow list” or “deny list” requests based on IP address lists and IP-based geographic locationsIP Access Control allows you to exclude specific geographies or limit access to known entitiesAssign access lists to the Caching & Delivery configuration using the following drop-down menus:
- By IP address list: Select one or more existing lists, then choose either Deny or Allow to indicate the type of restriction. Click Add to add the lists to the Access control list for this configuration section.
- By geolocation: Select one or more geographic areas (continents or countries), then choose either Deny or Allow to indicate the type of restriction. Click Add to add the lists to the “Access control list for this configuration” section.
Access control list for this configuration Section
You can select a default security setting for the configuration - either Default Allow or Default Deny. You can then add one or more IP address lists and geographic locations that modify the default setting. IP address lists and geolocations can be “mixed and matched” in any order desired.
To move an item in the list, move the mouse pointer over the item and use the vertical ellipses to drag and drop the item to another location in the list.
If you have the correct permissions, click Manage IP Lists to display a dialog that allows you to create new IP access lists. You can also view, edit, and delete existing IP address lists.
To view list details, click the + icon to the left of a list.
- The text “Used by configs in accounts” shows which Accounts have configurations that use the list.
- The text “Limited to accounts” shows any accounts to which your Company Admin has limited the list.
To create a new list, click the new list button at the top of the dialog, then: 1. Provide a name for the list.
2. Provide a single IP address or range of IP addresses. You can also create and upload CSV files of IP addresses. Click the link to see a sample CSV file.
3. Optionally limit the list to accounts.
4. Click the Save button. The new list is now available in the *By IP address list: drop-down menu at the top of the section.
To deny access to end users attempting to access your content using an anonymous VPN from an unauthorized geolocation, select the Deny ‘Anonymized with VPN’ access option.
- IP address lists and geographic locations are processed in the order they are specified (top to bottom). Once a match is found, subsequent lists and locations are ignored
- Users with the Company Admin role can manage lists for all accounts. Users with the User role who have been granted the Manage Delivery Configurations permission can apply all lists in the Accounts for which they have been granted management permission.
- Changes made to IP address lists are applied immediately and affect all Account configurations which use them (even legacy configurations that can’t be edited in Control.)
- IP address lists cannot be deleted if they are in use.

MediaVault

| Setting| Information Requested| Purpose | Selecting the Right Option| | Enable MediaVault content protection | Whether you want to use MediaVault to provide additional content security. MediaVault provides high-performance URL authentication. | MediaVault can help you prevent “deep linking” and other unauthorized viewing behavior | To enable this feature, check the Enable MediaVault content protection checkbox, and provide a primary and secondary “shared secret” (both used to prevent URL tampering).
You can also change the HTTP Error Code returned by MediaVault from the default 400 code by entering a new value in the Deny Status Code field. |

More about MediaVault

MediaVault is a high-performance URL authentication service. MediaVault’s main purpose is to help you secure your content from unauthorized viewing.
MediaVault maximizes authentication performance by using tokens to avoid three-way handshakes (common to other authentication methods) that can lead to severe connection time latency.
Please note that MediaVault is not a replacement for DRM and should not be associated with user authentication.
MediaVault works like this:
  • You enter a shared secret during the configuration process
  • You then generate a token (MD5 hash) for each published URL, based on the shared secret, and append it to the URL in a query term or provide it in a cookie.You can generate the token manually by navigating to the Configure > MediaVault in the navigation pane, or by creating server-side code on your origin.
  • MediaVault uses the same hash algorithm to create its token when a request is received, identical to the one you appended.
  • If the tokens match, MediaVault then looks for additional MediaVault-specific query terms (such as end date/time and IP address/mask) to determine whether the request is valid. If the tokens don’t match, the URL was tampered with, and the request is rejected.
For more information, see the MediaVault User Guide.

Amazon S3 Authorization

If you store content on Amazon S3, use this option to set your S3 access key, secret, and region.

Send SSL SNI to Origin

Server Name Indication (SNI) is a TLS extension that allows multi-tenancy of domains hosted on a web server. Shared cloud platforms often require SNI. The extension helps select the appropriate certificate for that domain and helps serve the appropriate content. Most modern web servers handle SNI; this option disables SNI for the minority of web servers that do not handle SNI correctly.
If a user is creating a new configuration and the selected protocol sets include HTTPS, then the Send SSL SNI to Origin option is selected by default.
If a user is editing a configuration, then the field is visible and enabled depending on the selected Service Profile.

Logging

SettingInformation RequestedPurposeSelecting the Right Option
Log cookiesWhether you want Content Delivery to stop saving cookie information in your log filesIf you process log files and don’t need the information in the cookie header, you may want to remove it to simplify processing and reduce log file size.If you know you need Cookie header information in your log files, check the Log cookies checkbox. Otherwise, leave it unchecked.
When this setting is enabled, Content Delivery logs all Cookie header information, up to a maximum of 8 KB for the entire header (regardless of the number of cookies in the header).
Log request headerWhether you want Content Delivery to start saving specific Request Headers in your log filesIf you process log files and need access to information in the Request Headers, you may want to enable this optionIf you know you need Request Header information in your log files, check the Log Request Header checkbox and enter the names of the specific headers to log. Otherwise, leave it unchecked.

Cookie Handling

EdgePrism issues a Set-Cookie header whenever it receives a request that has a specified query parameter. This feature provides a way for a cookie to be set with the query string sent in a request URL. You can create a configuration by entering values into the fields provided.
FieldDescription
Cookie parameterCookie name
URL query term selectorString that identifies the query term
ExpirationDate when the configuration expires
DomainDomain to which the configuration applies
You can also use the feature to indicate when a Set-Cookie header should not be issued.

Cookie Handling Example

This example instructs EdgePrism to issue a Set-Cookie header to the requesting client with the key nlpqtid, no expiration, and a Domain parameter of .ExampleDomain.com whenever EdgePrism detects pid= in the requested URL’s query string.
FieldValue
Cookie parameternlpqtid
URL query term selectorpid=
Expiration0
Domain.ExampleDomain.com

Redirect

You can specify conditions under which a content request should be redirected.

Redirect hostname header regex

This option can be used to issue a redirect based on a specified header and value. You can optionally request strict header regex checking.
FieldDescription/ Instructions
Header nameName of the header on which the redirect is based.
HTTP CodeHTTP Status Code upon which to issue the redirect.
Comma-separated key-value pairsHeader values upon which to issue the redirect.
HTTP code 301 or 302Status code to use for the redirect. Enter either 301 or 302.
Instead of delivering content from the origin, EdgePrism can redirect the user to a particular URL.

Strict Header Regex Checking

If the header values you entered in the Redirect hostname header regex are not in the specified Header name, EdgePrism will use the fields below as the conditions under which it will issue the redirect.
FieldDescription/ Instructions
HTTP CodeHTTP status code returned from the content request.
hostnameHostname from which content was requested.

Others

This section presents additional delivery options you can use in the Chunked Streaming configuration. For descriptions, hover your mouse pointer over the right side of the option name. An information icon appears along with the option description.

Additional Options

The Additional Options section allows you to quickly configure options that are available elsewhere on the page. If you know the options you want, you can configure them here in one location.
If you selected Both HTTP and HTTPS in the Content Location section, you could use the section to configure options for a particular protocol set.
  1. Begin typing an option name in the Options field. The field has auto-complete capabilities, so you do not have to type the full name. As you type, matching options display in the auto-filtered list.
    Available options depend on your account name and the service profile at the top of the page.
  2. Select the option from the auto-filtered list. The UI adds the option to a list above the option field.

Work with the Option/Protocol Sets List

This list allows you to associate protocol sets for the option you selected and enter any required option parameters.
  1. If parameters are required for the option, a field is displayed to enter parameter values. A prompt describing the parameter is displayed beneath the field.
  2. Enter a parameter value.
  3. If you selected Both HTTP and HTTPS in the Content Location section, two protocol sets are displayed to the right of the list item; otherwise, only one protocol set is displayed.
  4. Associate an option set with the option by selecting the desired protocol sets.
  5. To remove an option, hover over its row in the list and click the ( x ) icon on the right side of the row.

Notes

You can use the Notes field for additional information for others (why the configuration changes were made, etc.). Users can refer to the notes later when browsing historical configuration changes

Work with Configurations

Edit

To make configuration changes to existing Published Protocols or Source Protocols,
  1. Click the edit (pencil) icon on the right side of the configuration.
  2. In the CONTENT LOCATION section, select the drop-down arrow for the published or source protocol to launch the PROTOCOL SETS MIGRATION window.
  3. Choose your HTTP/HTTPS Protocol Set combinations; add one more protocol set if the configuration consists of just one protocol set; or remove one protocol set by selecting the ‘Do not use’ option.
  4. Click APPLY.
On rare occasions, a configuration might contain unsupported protocol set configurations, and if you attempt to edit the configuration, Control prevents you from editing and displays this message:
“Configuration cannot be saved. Please contact administrator to resolve the conflict between options.”
Unsupported protocol sets are often the byproduct of migrating a configuration from an older configuration version.
For information on the individual settings displayed, see the descriptions in Creating a New Configuration.
  • The ability to edit configurations is subject to conditions described in Read-Only and Hidden Capabilities.
    - On rare occasions, a configuration might contain unsupported protocol set configurations, and if you attempt to edit the configuration, Control prevents you from editing and displays this message: “This protocol combination is not supported in this application. You may view it here, but to make modifications, either do so via our configuration API or reach out to your account team.”
    - Unsupported protocol sets are generally the byproduct of migrating a configuration from an older configuration version.

Preview

Preview
To preview the settings associated with a configuration, click the “eye” icon at the bottom right of the configuration row. For information on the individual settings displayed, please see the setting descriptions in Creating a New Configuration.

Clone

Clone
To clone (make a copy of) a configuration, click the “copy” icon at the configuration row’s bottom right. When you have finished making changes to the settings, click Activate to enable the new configuration.
If you want to change protocol sets, see Changing Protocol Sets.
The ability to clone configurations is subject to conditions described in Read-Only and Hidden Capabilities.
For some configurations created for you by Edgio, only the preview (eye) icon will be visible. If this is the case, and you need to make changes, please contact your Account Manager or Solutions Engineer. Edgio can continue to manage the configuration, or it can be made available for you to edit in Control.
To clone a linked configuration, refer to Cloning a Linked Configuration

Delete

Users are not able to delete configurations. For more information, see Read-Only and Hidden Capabilities.

Revert to a Previous Configuration

Revert
Each time you update a configuration, a new version is assigned.
To revert to a previous configuration:
  1. Click the “undo” icon at the bottom right of the configuration row. A list of previous versions is displayed in a dialog.
  2. Select the version to which you want to revert.
    Although you intend to revert to a previous version, the reverted version will become the current version with a new version number. The new version number is displayed at the bottom of the dialog.
  3. Click the Activate button.
    The ability to revert configurations is subject to conditions described in Read-Only and Hidden Capabilities.

Link a Staging and Production Configuration

Use this feature to establish and remove a link between two configurations, designating one as Staging and the other as Production. This allows you to push updates from the Staging config to the Production configuration.
The configuration selected as PROD is overridden with the Staging configuration structure

Link Existing

  1. Click the chain link icon at the bottom right of the configuration.
  2. In the Link PROD config field, click Search existing.
  3. Locate the configuration by choosing between Published Hostname, Source Hostname, UUID, IPAC, or Username in the Filter by dropdown and then typing the search criteria into the adjacent box.
  4. Optional. Review the configuration by clicking the VIEW CONFIG button.
  5. Click Link.
  6. Click OK to acknowledge the overwrite notice. You will see a confirmation message in the top, right corner with links to both the Staging and Prod configurations.
  7. Upon successful linking, you receive a message with the UUIDs and links to Staging and PROD configs.

Link New

  1. Click the chain link icon at the bottom right of the configuration.
  2. In the Link PROD config field, click Create new.
  3. Fill out the PUBLISHED HOSTNAME and PUBLISHED PATH fields.
  4. Optional. To sync a different source/ host path, untick that option and enter a SOURCE HOSTNAME and SOURCE PATH.
  5. Click Link.
  6. The configuration selected as PROD is overridden with the Staging configuration structure, and you receive a confirmation message: “By linking this configuration, all current settings for this record will be destroyed and replaced by those on the linked staging configuration. Are you sure you want to continue with linking these two configurations?”
  7. Upon successful linking, you receive a message with the UUIDs and links to Staging and PROD configs.

Edit

When configurations are linked
  • The Edit button is disabled for PROD configs and basic users cannot edit. Control admin permissions are required to edit PROD configurations via SSUI.
  • ServiceProfiles and Protocol sets cannot be changed for the linked Staging and PROD configs.
To update a PROD configuration
  • Basic users can update the Staging configuration and push change to PROD via the sync link button in the toolbar.
  • Control admins can edit a PROD configuration via SSUI or push changes both ways (PROD > Staging, Staging > PROD).

Clone

You can clone both Staging and PROD linked configurations without limitation.
The cloned configuration is created as a normal configuration, and is not linked to any other configuration by default

Revert

A PROD config cannot be reverted. You will see the message: “This configuration record is the Production side of a ‘PROD-Staging’ linked relationship, and so it cannot be updated directly. Please navigate to the associated Staging configuration, make necessary updates there, and then synchronize those changes to this configuration.”
A Staging config can only be reverted to a version that has the linkProdStage structure. Once you link a configuration, it cannot be reverted to the initial version that was not linked.

Delete

Manage permissions are required to delete delivery configurations.
  1. Click the Remove Link icon from the configuration options.
  2. Select OK to acknowledge the link removal. You will see a confirmation message, and you can now work with the configurations as you typically do.
  3. Click the rubbish-bin icon to delete the configuration.