From af197ce7c529dd4b79320d5075d43e6679fd3fa3 Mon Sep 17 00:00:00 2001 From: Marcos Lilljedahl Date: Fri, 2 Jun 2017 16:16:45 -0300 Subject: [PATCH] Add timeouts to http server --- Dockerfile | 2 +- api.go | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index a88c2b0..04975bc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.7 +FROM golang:1.8 # Copy the runtime dockerfile into the context as Dockerfile COPY Dockerfile.run /go/bin/Dockerfile diff --git a/api.go b/api.go index 277ea0c..3470312 100644 --- a/api.go +++ b/api.go @@ -5,6 +5,7 @@ import ( "log" "net/http" "os" + "time" gh "github.com/gorilla/handlers" "github.com/gorilla/mux" @@ -104,9 +105,16 @@ func main() { r.PathPrefix("/").Handler(negroni.New(negroni.Wrap(corsHandler(corsRouter)))) n.UseHandler(r) + httpServer := http.Server{ + Addr: "0.0.0.0:" + config.PortNumber, + Handler: n, + IdleTimeout: 30 * time.Second, + ReadHeaderTimeout: 5 * time.Second, + } + go func() { log.Println("Listening on port " + config.PortNumber) - log.Fatal(http.ListenAndServe("0.0.0.0:"+config.PortNumber, n)) + log.Fatal(httpServer.ListenAndServe()) }() // Now listen for TLS connections that need to be proxied