mux router возвращает ошибку 503 на debian stretch (linux), работает на Windows 10 - PullRequest
0 голосов
/ 28 сентября 2018

У меня странная проблема на сервере 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)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...