Opened 21 months ago

Last modified 4 months ago

#798 new enhancement

Implement http_brotli_static module

Reported by: bayden@… Owned by:
Priority: major Milestone:
Component: nginx-core Version: 1.9.x
Keywords: Cc:
Sensitive: no
uname -a:
nginx -V: 1.9.5

Description

Today, nginx supports the http_gzip_static module (http://nginx.org/en/docs/http/ngx_http_gzip_static_module.html) for doing ahead-of-time gzip compression of assets; this is very useful because it allows using high-ratio/low-performance compressors like Zopfli.

Web Browsers (Chrome and Firefox, to start) are about to start supporting a new Content-Encoding, named Brotli, which offers MUCH improved compression ratios but with slow performance. http://textslashplain.com/2015/09/10/brotli/ As such, we need nginx to support a similar module (e.g. http_brotli_static) for this new content-encoding.

Attachments (1)

brotli_1_11_10.patch (9.6 KB) - added by eustas@… 4 months ago.

Download all attachments as: .zip

Change History (6)

comment:1 Changed 21 months ago by bayden@…

It appears that Google has made this issue rather moot by releasing a module that handles both static and on-the-fly Brotli compression: https://github.com/google/ngx_brotli

comment:2 Changed 19 months ago by steffen.weber@…

Firefox 44 (scheduled for release in January 2016) will support Brotli: https://bugzilla.mozilla.org/show_bug.cgi?id=366559

It would be nice to have Brotli support available in nginx out-of-the-box. For me personally, the "brotli_static" feature mentioned in this bug report would be fine, I don't (yet) need on-the-fly Brotli compression.

Maybe this can be considered for the 1.9 branch?

Thank you for nginx!

comment:3 Changed 17 months ago by lewisgoddard@…

Just to add a few more relevant links:

comment:4 Changed 5 months ago by cmoeke@…

The Google Brotli module should be added now to nginx.

Most modern browsers support Brotli (http://caniuse.com/#feat=brotli):

  • Edge 15 (Current version 14)
  • Firefox 44 (Current version 50)
  • Chrome 50 (Current version 55)
  • Opera 38 (Current version 42)

There is also a fallback to gzip for older Browsers.

comment:5 Changed 4 months ago by eustas@…

An alternative could be to extend http_gzip_static module, because modules share 99% of logic.

http://mailman.nginx.org/pipermail/nginx-devel/2017-February/009536.html

Last edited 4 months ago by eustas@… (previous) (diff)

Changed 4 months ago by eustas@…

Note: See TracTickets for help on using tickets.