我有一个nodejs进程在侦听服务器上的端口:
app.get('/statistic', function(req, res) {
log_get_connection(req);
getStatistic().then(statistic => {
res.json(statistic);
});
});
当我尝试通过curl在同一台机器上访问它时:
curl "http://127.0.0.1:<PORT>/statistic"
# or
curl "http://<EXT_IP>:<PORT>/statistic"
我得到:
* Empty reply from server
* Connection #0 to host EXT_IP left intact
curl: (52) Empty reply from server
但是,当我从另一个服务器通过curl访问它时,我看到了成功的HTTP响应。
我不会覆盖
res
。另外,如果将console.log(statistic)
放在res.json(statistic)
之前,我会看到statistic
是正确的。更有趣的是,此设置在一段时间内运行良好。
UPD:ufw已禁用。
最佳答案
抱歉,我发现错误-在nodejs代码中,有一部分解析文件。文件已扩展,该方法的执行需要很长时间。
显然,这恰好巧合,以至于当我从第三方服务器发出请求时,该方法设法计算并返回数据,并且在服务器本身询问时没有时间。
服务器在console.log(statistic)
停止工作之前停止将结果返回给第三方服务器和res.json(statistic)
时,发现错误。
谢谢您的回复!