LOG IN SIGN UP
Documentation

Enabling automatic gzipping

  Last updated October 11, 2018

Fastly's gzip feature dynamically fetches content from origin, compresses it, and then caches it. There are two ways to enable gzip:

Enabling gzip

To dynamically gzip cacheable content based on file extension or content-type, follow the steps below to enable the default gzip policy:

  1. Log in to the Fastly web interface and click the Configure link.
  2. From the service menu, select the appropriate service.
  3. Click the Configuration button and then select Clone active. The Domains page appears.
  4. Click the Content link. The Content page appears.
  5. Click the Default gzip policy switch to enable gzip.
  6. Click the Activate button to deploy your configuration changes.

Setting up an advanced gzip policy

To customize the content that’s compressed and the conditions under which this compression occurs, follow the steps below:

  1. Log in to the Fastly web interface and click the Configure link.
  2. From the service menu, select the appropriate service.
  3. Click the Configuration button and then select Clone active. The Domains page appears.
  4. Click the Content link. The Content page appears.
  5. Click the Set up advanced gzip button. The Create a gzip page appears.
  6. Click the Override these defaults link. Additional gzip fields appear.

    Create a new gzip

  7. Fill out the Create a gzip fields as follows:
    • In the Name field, type an arbitrary name for your new gzip rule.
    • In the Extensions field, type the file extension for each file type to be dynamically gzipped, separated by spaces. Only type the three- or four-letter string representing the file extension.
    • In the Content Types field, type the content-type for each type of content you wish to have dynamically gzipped, separated by spaces. Do not use regular expressions.
  8. Click the Create button. The new gzip policy appears.
  9. Click the Activate button to deploy your configuration changes.

Automatic normalization

Because gzip is one of the most common reasons to vary output based on a request header, Fastly will normalize the value of Accept-Encoding on incoming requests. The modified header will be set to a single encoding type, or none, and will reflect the best compression scheme supported by the browser. This includes removing Accept-Encoding values in requests from browsers that advertise support for gzip but whose implementation is broken, such as IE6.

Specifically, we run the following steps on inbound requests:

  1. If the User-Agent matches a pattern for browsers that have problems with compressed responses, remove the Accept-Encoding header
  2. Else if the Accept-Encoding header includes the string "gzip", set the entire value to the string "gzip"
  3. Else if the Accept-Encoding header includes the string "deflate", set the entire value to the string "deflate"
  4. Else remove the Accept-Encoding header

Where this normalization process has changed the header value, the original value is made available in the custom header Fastly-Orig-Accept-Encoding.

If a user agent advertises support for brotli, currently we will normalize this to gzip because we do not support brotli encoding at the edge. However, if you are doing brotli encoding at your origin server, you may want to modify our normalization algorithm.


Back to Top