У меня странная проблема на сервере Linux, когда я запускаю свое приложение и перехожу к нему, он выдает сообщение об ошибке 503. Служба недоступна.
Я использую маршрутизатор мультиплексора, и он работает отличнонормально в Windows, но в Linux по какой-то причине это не так.
У меня есть маршруты, переданные промежуточному программному обеспечению, где выполняется обработчик, например ...
middleware.go
func SetRoute(r *mux.Router, uri string, handle func(http.ResponseWriter, *http.Request), methods string) {
r.HandleFunc(uri, handle).Methods(methods)
r.Use(MiddlewareHandle)
}
func MiddlewareHandle(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
start := time.Now()
defer func() {
log.Println(r.URL.Path, time.Since(start))
}()
next.ServeHTTP(w, r)
})
}
Тогда для моих маршрутов:
r := mux.NewRouter()
middleware.SetRoute(r, "/", index.Index, "GET")
srv := &http.Server{
Handler: r,
Addr: "127.0.0.1:8080",
WriteTimeout: 15 * time.Second,
ReadTimeout: 15 * time.Second,
}
log.Fatal(srv.ListenAndServe())
И мой дескриптор будет таким:
type IndexData struct {
PageTitle string
}
func Index(w http.ResponseWriter, r *http.Request) {
data := IndexData{
PageTitle: "Hello World",
}
err := template.Must(template.New(BaseTemplate).Funcs(FuncTemplate).ParseFiles(BaseTemplate, "index.html")).ExecuteTemplate(w, "skeleton", data)
if err != nil {
fmt.Println(err)
}
}
Любая идея, почему она не работает в Linux(Debian Stretch)?