I am running a https web server in go. I am testing it using a angular web app (Chrome browser) that makes ajax calls to the web server.
If I keep hitting the web server continuously everything seems working. But whenever I leave it idle for sometime and hit the web server the ajax call from browser doesn't get a response. Almost always I see this log line in my server log.
2016/01/16 04:06:47.006977 http: TLS handshake error from 42.21.139.47:51463: EOF
I can confirm that the IP address is my IP address.
I am starting my https server like this:
r := mux.NewRouter()
r.HandleFunc("/status", handleStatus)
setUpLoginEndpoint(&cfg.Session, r)
setUpLogoutEndpoint(cfg.Session.CookieName, r)
setUpChangePasswordEndpoint(cfg.Session.CookieName, r)
setUpMetricSinkEndpoint(cfg.Metric.SinkApiKey, r)
setUpMetricQueryEndpoint(cfg.Session.CookieName, r)
http.ListenAndServeTLS(":443", "../cert.pem", "../keys.pem", &Server{r})
I can confirm that I am closing the request body in every handler using defer r.Body.Close().
I am using go 1.5.2.
Any help would be appreciated.
Regards,
Sathya
Server
— the fact that the log notes that the incoming connection was via port:51463
would suggest that somewhere in your code, the stdlib HTTP library is choosing a random port for serving traffic (other than 443). – Jeff Sisson