当我使用Apache mod_proxy将我的go-request转发到我的golang-webserver时,我的go-server无法识别客户端何时断开连接。我使用的是关闭通知器:
notify := rw.(http.CloseNotifier).CloseNotify()
go func() {
<-notify
brk.closingClients <- cl.session.Value
}当我使用防火墙站点路径根时,它也不起作用。但是当我使用我自己的golang反向代理时,它工作得非常好,没有任何问题。使用我的apache mod_proxy,客户端在一些更真实的数据发送到go real服务器后收到通知。
也许有人知道如何解决我的问题,当客户端直接断开连接时,我可以识别出来,这样就不会收到更多的数据。
下面是我的mod_proxy配置
SSLProxyEngine On
ProxyRequests On
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
ProxyPass /event https://xxx.xxx.xxx.xxx:8888/event flushpackets=on keepalive=on发布于 2016-01-12 21:57:44
当客户端断开连接时,Apache服务器不会关闭连接。对它来说,尽可能长时间地重用连接要高效得多。
如果您确实希望反向代理每次都重新连接(请注意,您可能会遇到性能或端口分配问题),您可以强制mod_proxy使用HTTP/1.0,或者每次都使用以下任一方法显式关闭连接:
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#envsettings
https://stackoverflow.com/questions/34738551
复制相似问题