code: func (p *Proxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
  	if isWebsocket(req) {
  		// we don't use https explicitly, ssl termination is done here
  		req.URL.Scheme = "ws"
  		p.websocketProxy.ServeHTTP(rw, req)
  		return
  	}
  
  	p.httpProxy.ServeHTTP(rw, req)
  }
docs: // ServeHTTP implements the http.Handler interface.