2

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 に従っています。

私が気づいたことの 1 つは、サーバーが実際に機能していない場合、ログに-ステータス、応答時間、およびコンテンツの長さの代わりに文字が表示されることです。私は-コンテンツの長さを見ることに慣れています。サーバーが 304 で応答したときに何が起こるかです。-応答時間やステータスについては見たことがありませんが、検索しても (Google と SO の両方で)、これが実際に何を意味するのかわかりません (ボンネットの下で)。

このステータスの欠如が何を意味するか知っている人はいますか?それがよく理解された意味を持っている場合、これにつながる間違いはありますか?

4

3 に答える 3

3

ここの問題レポートによると、GET / - - ms - -本質的には、「アイドル状態が長すぎるために Node.js が TCP 接続を強制終了する前に、応答を送信しなかった」ことを意味します。

各リクエストに対してレスポンスが送信されていることを確認してください。

于 2016-09-28T13:13:36.367 に答える