Add HTTP compression

This commit is contained in:
Jan-Lukas Else 2020-10-19 21:09:51 +02:00
parent 96259912cb
commit a2190306da
4 changed files with 12 additions and 17 deletions

View File

@ -135,21 +135,11 @@ func saveCache(path string, now time.Time, header map[string][]string, body []by
headerBytes, _ := json.Marshal(header)
startWritingToCacheDb()
defer finishWritingToCacheDb()
tx, err := cacheDb.Begin()
if err != nil {
return
}
_, _ = tx.Exec("insert or replace into cache (path, time, header, body) values (?, ?, ?, ?);", path, now.Unix(), headerBytes, body)
_ = tx.Commit()
_, _ = cacheDb.Exec("insert or replace into cache (path, time, header, body) values (?, ?, ?, ?);", path, now.Unix(), headerBytes, body)
}
func purgeCache() {
startWritingToCacheDb()
defer finishWritingToCacheDb()
tx, err := cacheDb.Begin()
if err != nil {
return
}
_, _ = tx.Exec("delete from cache; vacuum;")
_ = tx.Commit()
_, _ = cacheDb.Exec("delete from cache; vacuum;")
}

2
go.mod
View File

@ -37,7 +37,7 @@ require (
github.com/yuin/goldmark-emoji v1.0.1
golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897
golang.org/x/net v0.0.0-20201016165138-7b1cca2348c0 // indirect
golang.org/x/sys v0.0.0-20201018121011-98379d014ca7 // indirect
golang.org/x/sys v0.0.0-20201018230417-eeed37f84f13 // indirect
gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b // indirect
gopkg.in/ini.v1 v1.62.0 // indirect
gopkg.in/yaml.v2 v2.3.0 // indirect

4
go.sum
View File

@ -372,8 +372,8 @@ golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20200724161237-0e2f3a69832c h1:UIcGWL6/wpCfyGuJnRFJRurA+yj8RrW7Q6x2YMCXt6c=
golang.org/x/sys v0.0.0-20200724161237-0e2f3a69832c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201018121011-98379d014ca7 h1:CNOpL+H7PSxBI7dF/EIUsfOguRSzWp6CQ91yxZE6PG4=
golang.org/x/sys v0.0.0-20201018121011-98379d014ca7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201018230417-eeed37f84f13 h1:5jaG59Zhd+8ZXe8C+lgiAGqkOaZBruqrWclLkgAww34=
golang.org/x/sys v0.0.0-20201018230417-eeed37f84f13/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=

View File

@ -1,6 +1,7 @@
package main
import (
"compress/flate"
"net/http"
"strconv"
"strings"
@ -69,10 +70,14 @@ func reloadRouter() error {
func buildHandler() (http.Handler, error) {
r := chi.NewRouter()
r.Use(middleware.Recoverer)
if appConfig.Server.Logging {
r.Use(middleware.RealIP, middleware.Logger)
r.Use(middleware.RealIP)
r.Use(middleware.Logger)
}
r.Use(middleware.Recoverer, middleware.StripSlashes, middleware.GetHead)
r.Use(middleware.Compress(flate.DefaultCompression))
r.Use(middleware.StripSlashes)
r.Use(middleware.GetHead)
// Profiler
if appConfig.Server.Debug {