我在 Azure VM 上运行 node.js 应用程序(使用 PM2 处理负载平衡和重新启动)。这是服务器设置和日志记录代码:
var logger = require('morgan');
var app = express();
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(flash());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', routes);
app.use('/api/v01', api.router);
app.use('/api/v02', apiv2.router);
在最后一天左右,我们开始在连接网站时遇到很多麻烦。需要重新加载几次才能显示任何数据。
我一直在查看日志,试图弄清楚发生了什么。我没有看到任何错误,但是这种事情有很多实例:
WebApp-2 GET /portal - - ms - -
WebApp-3 GET /portal - - ms - -
WebApp-2 GET / - - ms - -
WebApp-2 GET / - - ms - -
这些似乎与人们无法查看这些页面相吻合。当一切正常时,日志看起来更像这样:
WebApp-3 GET / 302 16.532 ms - 58
WebApp-3 GET /portal 200 335.192 ms - 5239
格式:method :url :status :response-time ms - :res[content-length]
根据 Morgan docs。
我注意到的一件事是,当服务器没有真正工作时,日志记录的-
字符代替了状态、响应时间和内容长度。我习惯于查看-
内容长度;当服务器以 304 响应时会发生这种情况。尽管我从未见过-
for 响应时间或状态,尽管进行了搜索(Google 和这里都在 SO),但我不清楚这真正意味着什么(在引擎盖下)。
有谁知道这种缺乏地位意味着什么?如果它具有很好理解的含义,我是否犯了会导致这种情况的错误?