mirror of
https://github.com/caddyserver/caddy.git
synced 2024-11-22 12:08:28 +08:00
encode: Tweak compression settings (#4215)
* Tweak compression settings zstd: Limit window sizes to 128K to keep memory in control both server and client size. zstd: Write 0 length frames. This may be needed for compatibility. zstd: Create fewer encoders. Small memory improvement. gzip: Allow -2 (Huffman only) and -3 (stateless) compression modes. * Update modules/caddyhttp/encode/zstd/zstd.go Update docs. Co-authored-by: Francis Lavoie <lavofr@gmail.com> Co-authored-by: Francis Lavoie <lavofr@gmail.com>
This commit is contained in:
parent
9d4ed3a323
commit
69c914483d
|
@ -15,7 +15,6 @@
|
|||
package caddygzip
|
||||
|
||||
import (
|
||||
"compress/flate"
|
||||
"fmt"
|
||||
"strconv"
|
||||
|
||||
|
@ -68,11 +67,11 @@ func (g *Gzip) Provision(ctx caddy.Context) error {
|
|||
|
||||
// Validate validates g's configuration.
|
||||
func (g Gzip) Validate() error {
|
||||
if g.Level < flate.NoCompression {
|
||||
return fmt.Errorf("quality too low; must be >= %d", flate.NoCompression)
|
||||
if g.Level < gzip.StatelessCompression {
|
||||
return fmt.Errorf("quality too low; must be >= %d", gzip.StatelessCompression)
|
||||
}
|
||||
if g.Level > flate.BestCompression {
|
||||
return fmt.Errorf("quality too high; must be <= %d", flate.BestCompression)
|
||||
if g.Level > gzip.BestCompression {
|
||||
return fmt.Errorf("quality too high; must be <= %d", gzip.BestCompression)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -47,7 +47,10 @@ func (Zstd) AcceptEncoding() string { return "zstd" }
|
|||
|
||||
// NewEncoder returns a new gzip writer.
|
||||
func (z Zstd) NewEncoder() encode.Encoder {
|
||||
writer, _ := zstd.NewWriter(nil)
|
||||
// The default of 8MB for the window is
|
||||
// too large for many clients, so we limit
|
||||
// it to 128K to lighten their load.
|
||||
writer, _ := zstd.NewWriter(nil, zstd.WithWindowSize(128<<10), zstd.WithEncoderConcurrency(1), zstd.WithZeroFrames(true))
|
||||
return writer
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user