+-------------------+
| Metadata          |
+----------+--------+
| Template | guides |
+----------+--------+
| Category | Launch |
+----------+--------+

+-------------------+
| Section Metadata  |
+---------+---------+
| style   | content |
+---------+---------+

![][image0]

# Configuring push invalidation for BYO production CDN

Push invalidation automatically purges content on the customer's production CDN (e.g. `www.yourdomain.com`) whenever content or code changes are made on AEM origins with the `main` branch in the host name (e.g. `main--site--org.aem.live`). Changes pushed to other origins do **not** trigger push invalidation.

Content is purged by URL and by cache tag/key.

Setting up push invalidation requires 2 steps:

- [Configuration](#configuration)
- [Opt-In Request Header](#opt-in-request-header)

## Configuration

Push invalidation is currently supported for CDNs of the following vendors:

- [Fastly](#setup-push-invalidation-for-fastly)
- [Akamai](#setup-push-invalidation-for-akamai)
- [Cloudflare](#setup-push-invalidation-for-cloudflare)
- [CloudFront](#set-up-push-invalidation-for-aws-cloudfront)
- [Adobe Managed](#setup-push-invalidation-for-adobe-managed-cdn)

Push invalidation is enabled by setting the project's [production CDN configuration](https://www.aem.live/docs/config-service-setup#update-production-cdn). The following sections describe the vendor-specific properties required to set up push invalidation.

+-----------------------------------------------------------------------------------------------+
| Fragment                                                                                      |
+-----------------------------------------------------------------------------------------------+
| <https://main--helix-website--adobe.aem.page/docs/setup-byo-cdn-push-invalidation-for-fastly> |
+-----------------------------------------------------------------------------------------------+

+-----------------------------------------------------------------------------------------------+
| Fragment                                                                                      |
+-----------------------------------------------------------------------------------------------+
| <https://main--helix-website--adobe.aem.page/docs/setup-byo-cdn-push-invalidation-for-akamai> |
+-----------------------------------------------------------------------------------------------+

+---------------------------------------------------------------------------------------------------+
| Fragment                                                                                          |
+---------------------------------------------------------------------------------------------------+
| <https://main--helix-website--adobe.aem.page/docs/setup-byo-cdn-push-invalidation-for-cloudflare> |
+---------------------------------------------------------------------------------------------------+

+---------------------------------------------------------------------------------------------------+
| Fragment                                                                                          |
+---------------------------------------------------------------------------------------------------+
| <https://main--helix-website--adobe.aem.page/docs/setup-byo-cdn-push-invalidation-for-cloudfront> |
+---------------------------------------------------------------------------------------------------+

+------------------------------------------------------------------------------------------------+
| Fragment                                                                                       |
+------------------------------------------------------------------------------------------------+
| <https://main--helix-website--adobe.aem.page/docs/setup-byo-cdn-push-invalidation-for-managed> |
+------------------------------------------------------------------------------------------------+

## Opt-In Request Header

The production CDN needs to send the following opt-in header to the origin in order to enable long cache TTLs:

`X-Push-Invalidation: enabled`

+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Pagination (Contained)                                                                                                                                           |
+-----------------------------------------------------------------------------------+------------------------------------------------------------------------------+
| :icon-arrow: Previous                                                             | Up Next :icon-arrow:                                                         |
|                                                                                   |                                                                              |
| ### [Placeholders](https://main--helix-website--adobe.hlx.page/docs/placeholders) | ### [Sitemap](https://main--helix-website--adobe.hlx.page/developer/sitemap) |
+-----------------------------------------------------------------------------------+------------------------------------------------------------------------------+

[image0]: https://main--helix-website--adobe.aem.page/media_16a9c2a39a53dd97ee82fd8b152f751405f19923c.png#width=1463&height=1097
