我有一个基于go的单主机反向代理正在我的应用程序中使用。代理发出的对下游服务的请求会超时,并在30秒后自动取消。
查看http包github后,我发现了类似的问题:https://github.com/golang/go/issues/28876.
建议的响应是需要设置HTTP超时,而不是TCP拨号部分,但我找不到这样做的配置。
需要一些帮助。
timeout := service.httpConfig.ProxyTimeout / 1000
proxy := httputil.NewSingleHostReverseProxy(clusterURL)
transport := http.DefaultTransport.(*http.Transport).Clone()
transport.ResponseHeaderTimeout = time.Duration(timeout) * time.Second
proxy.ServeHTTP(c.Writer, c.Request)
这样做没有帮助。即使我的ProxyTimeout是180,000,请求总是在30秒后抛出504。
1条答案
按热度按时间esbemjvw1#
尝试替换Transport,就像这样
并检查 *http.Server上的超时