首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Golang不识别Close-Notifier

Golang不识别Close-Notifier
EN

Stack Overflow用户
提问于 2016-01-12 16:16:43
回答 1查看 326关注 0票数 0

当我使用Apache mod_proxy将我的go-request转发到我的golang-webserver时,我的go-server无法识别客户端何时断开连接。我使用的是关闭通知器:

代码语言:javascript
复制
notify := rw.(http.CloseNotifier).CloseNotify()
go func() {
        <-notify
        brk.closingClients <- cl.session.Value
}

当我使用防火墙站点路径根时,它也不起作用。但是当我使用我自己的golang反向代理时,它工作得非常好,没有任何问题。使用我的apache mod_proxy,客户端在一些更真实的数据发送到go real服务器后收到通知。

也许有人知道如何解决我的问题,当客户端直接断开连接时,我可以识别出来,这样就不会收到更多的数据。

下面是我的mod_proxy配置

代码语言:javascript
复制
     SSLProxyEngine On
    ProxyRequests On
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    ProxyPass /event https://xxx.xxx.xxx.xxx:8888/event flushpackets=on  keepalive=on
EN

回答 1

Stack Overflow用户

发布于 2016-01-12 21:57:44

当客户端断开连接时,Apache服务器不会关闭连接。对它来说,尽可能长时间地重用连接要高效得多。

如果您确实希望反向代理每次都重新连接(请注意,您可能会遇到性能或端口分配问题),您可以强制mod_proxy使用HTTP/1.0,或者每次都使用以下任一方法显式关闭连接:

代码语言:javascript
复制
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1

https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#envsettings

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34738551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档