首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >play framework 1.2.4泄漏https连接

问play framework 1.2.4泄漏https连接
EN

Stack Overflow用户
提问于 2012-05-04 17:33:18
回答 1查看 725关注 0票数 0

我有一个播放框架1.2.4网站,处理http和https的请求。

Play监听80和443端口,没有安装反向代理。

一段时间后,站点停止响应,并在日志中显示大量"java.io.IOException: Too some files“。

显然,播放有时会使https连接处于CLOSE_WAIT状态。这些连接如下所示:

代码语言:javascript
复制
java    24151 root  201u  IPv6             915797      0t0      TCP Ubuntu-1004-lucid-64-minimal:https->xdsl.******.net:55055 (CLOSE_WAIT)

下面是对alive (工作了几个小时)和dead (有16k打开文件)的lsof转储的分析:

代码语言:javascript
复制
$ grep "CLOSE_WAIT" dead.txt | wc -l
10473
$ grep "ESTABLISHED" dead.txt | wc -l
1888
$ grep "https.*CLOSE_WAIT" dead.txt | wc -l
10473
$ grep "https.*ESTABLISHED" dead.txt | wc -l
1621

$ grep "CLOSE_WAIT" alive.txt | wc -l
7
$ grep "ESTABLISHED" alive.txt | wc -l
50
$ grep "https.*CLOSE_WAIT" alive.txt | wc -l
7
$ grep "https.*ESTABLISHED" alive.txt | wc -l
32

如你所见,大约20%的请求是http,但所有处于CLOSE_WAIT状态的连接都是https。

可能造成麻烦的原因是什么?会不会是play框架中的一个bug?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-04 18:12:10

根据您所描述的,我同意这确实是一个运行中的bug。这可能是Netty的问题,但由于Play与Netty集成在一起,我认为这种限制与您的目的无关。我建议在灯塔上开一张罚单,并可能联系Nicolas Leroux,他负责该应用程序的https部分。

然而,Play开发者将是第一个说Play不打算成为http和https容器的人。https握手最好由前端代理执行,例如Apache。网上和实战文档中有很多关于如何做到这一点的例子。

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

https://stackoverflow.com/questions/10446283

复制
相关文章

相似问题

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