我不完全确定这是不是坏事,但我正在监视(记录)我用这段代码得到的传入http请求(注意在可扩展的OpenShift平台上运行NodeJS应用程序):< / p>
function onRequest(request, response)
{
var date = new Date();
console.log(date.toUTCString() + " A request was made with url: " + request.url + " and header: " + JSON.stringify(request.headers));
// continue handling the request
}
我得到的结果如下(每2秒钟):
Fri, 07 Mar 2014 09:43:59 GMT A request was made with url: / and header: {}
Fri, 07 Mar 2014 09:44:01 GMT A request was made with url: / and header: {}
Fri, 07 Mar 2014 09:44:03 GMT A request was made with url: / and header: {}
所以我想知道这是否是openhift中可扩展的NodeJS应用程序(附带MongoDB数据库设备)的正常行为,或者这是否会导致问题?
此致
Hylke Bron
答案 0 :(得分:3)
如果您正在运行缩放的应用程序,那么就是haproxy,确保您的应用程序已启动,以便它可以将请求转发给它。您可以在主设备上的haproxy / haproxy.cfg文件中更改haproxy设置。
答案 1 :(得分:1)
我正在使用此方法通知OPENSHIFT应用程序处于活动状态
app.head("/", function(req, res, next){
res.status(200).end();
});
答案 2 :(得分:0)
由于我不想弄乱haproxy.cfg,我这样做了,它似乎有效。在您的主应用程序中,添加中间件功能以在ping上中止
function ignoreHeartbeat(except) {
except = except || 0;
var count = except;
return function(req, res, next) {
if (req.headers["x-forwarded-for"])
return next();
if (except > 0) {
if (--count <= 0) {
count = except;
return next();
}
}
res.end();
}
}
app.use(ignoreHeartbeat(1000));
将代码放在之前设置记录器(Express 3示例如下所示)
app.use(express.logger(...))
每1000次ping一次。将0除外设置为忽略所有ping。