Apache httpd在代理后面放弃了活动连接(chunked long polling)

时间:2017-02-09 14:41:21

标签: apache proxy python-requests long-polling

我们有同步服务(10.17.8.89),它通过HTTP长轮询同步来自复制器服务(10.17.4.184)的数据。 sync和replicator服务都是使用python请求lib和eventlet wisgi模块编写的。

Replicator服务接受端口6601上的请求,并且位于Apache httpd后面。 Rewirte规则用于代理请求。

重写规则如下所示

RewriteRule ^/sync.*    http://localhost:6601%{REQUEST_URI}?%{QUERY_STRING} [P]

我们使用分块编码来传输数据。数据定义为length:data。 每2秒钟从复制器发送心跳'1:0'进行同步以保持连接活动。

Apache超时配置为20秒。

系统看起来像这样 System looks like this

Apache通过将FIN数据包以随机间隔发送到复制器服务和同步服务,并在4分钟后发送,即使每隔2秒发送一次心跳,也会丢弃连接,从而丢弃连接。

从客户端到服务器的数据包捕获 packet capture from client to server

从服务器到客户端的数据包捕获 packet capture from server to client

从apache到replicator服务的数据包捕获 packet capture from apache to replicator service

任何人都可以帮助我们解决Apache断开连接的原因问题。

0 个答案:

没有答案