Skip to content

Commit

Permalink
Docs: Add more clarification about compress (vercel#60268)
Browse files Browse the repository at this point in the history
- Add note on how to disable Next.js compression, to use a different
algorithm.

---------

Co-authored-by: Lee Robinson <me@leerob.io>
  • Loading branch information
2 people authored and agustints committed Jan 6, 2024
1 parent b9bce85 commit 959a015
Showing 1 changed file with 13 additions and 3 deletions.
16 changes: 13 additions & 3 deletions docs/02-app/02-api-reference/05-next-config-js/compress.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ description: Next.js provides gzip compression to compress rendered content and

{/* The content of this doc is shared between the app and pages router. You can use the `<PagesOnly>Content</PagesOnly>` component to add content that is specific to the Pages Router. Any shared content should not be wrapped in a component. */}

By default, Next.js uses `gzip` to compress rendered content and static files when using `next start` or a custom server. If compression is already configured in your application via a custom server, Next.js will not add its own compressor.
By default, Next.js uses `gzip` to compress rendered content and static files when using `next start` or a custom server. This is an optmization for application's that do not have compression configured. If compression is _already_ configured in your application via a custom server, Next.js will not add compression.

> **Good to know:**
>
> - When hosting your application on [Vercel](https://vercel.com/docs/edge-network/compression), compression uses `brotli` **and** `gzip`.
> - When hosting your application on [Vercel](https://vercel.com/docs/edge-network/compression), compression uses `brotli` first, then `gzip`.
> - You can check if compression is enabled and which algorithm is used by looking at the [`Accept-Encoding`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding) (browser accepted options) and [`Content-Encoding`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding) (currently used) headers in the response.
## Disabling compression
Expand All @@ -22,4 +22,14 @@ module.exports = {
}
```

We do not recommend disabling compression unless you have a specific reason to do so, as compression reduces bandwidth usage and improves the performance of your application.
We do not recommend disabling compression unless you have compression configured on your server, as compression reduces bandwidth usage and improves the performance of your application.

## Changing the compression algorithm

To change your compression algorithm, you will need to configure your custom server and set the `compress` option to `false` in your `next.config.js` file.

For example, you're using [nginx](https://www.nginx.com/) and want to switch to `brotli`, set the `compress` option to `false` to allow nginx to handle compression.

> **Good to know:**
>
> - For Next.js applications on Vercel, compression is handled by the Vercel's Edge Network and not Next.js. See the [Vercel documentation](https://vercel.com/docs/edge-network/compression) for more information.

0 comments on commit 959a015

Please sign in to comment.