package application import ( "html/template" "net/http" log "github.com/sirupsen/logrus" ) // NewProxyErrorHandler creates a ProxyErrorHandler using the template given. func NewProxyErrorHandler(errorTemplate *template.Template) func(http.ResponseWriter, *http.Request, error) { return func(rw http.ResponseWriter, req *http.Request, proxyErr error) { log.Errorf("Error proxying to upstream server: %v", proxyErr) rw.WriteHeader(http.StatusBadGateway) data := struct { Title string Message string ProxyPrefix string }{ Title: "Bad Gateway", Message: "Error proxying to upstream server", ProxyPrefix: "/akprox", } err := errorTemplate.Execute(rw, data) if err != nil { http.Error(rw, "Internal Server Error", http.StatusInternalServerError) } } }