最終的にこの問題の原因を突き止め、オンラインで直接的な回答が見つからなかったので、私は答えを投稿したいと思っていました。とにかく、ここに問題があります:ノードのhttp.get関数を使用してECONNRESET応答を取得する
私は単純なノードアプリケーションをポート3000で実行しています。私はいくつかのデータベース接続プーリングを試していましたが、予想通りに動作していることをテストするためにロードしたかったのです。私は包囲をインストールしてみました:
$ siege -c 10 -r 10 -b http://localhost:3000
私はConnection reset by peer
エラーを得ました。だから私は、接続の数を減らしてみました:
$ siege -c 1 -r 1 -b http://localhost:3000
同じ問題。私はおそらく包囲攻撃の問題だと思ったので、nperfを試してみてECONNRESET
というエラーが出ました。砲兵と同じ。
私はカール、テルネット、ウェブブラウザを使って接続でき、有効な応答を得たということです。
私はエクスプレスアプリでロギングエラーを試みましたが、リクエストを受け取ったことはありませんでした。私はnettop
を使ってネットワークトラフィックを監視しようとしましたが、包囲攻撃やnperf(それはカールを使っていましたが)を使って接続を示したことはありません。
nperfが使用するのと同じ方法(ノードのhttp.get
関数)を使用して接続するクライアントアプリケーションを作成し、同じECONNRESET
応答を得ました。
私はポート3001で実行されている簡単なエクスプレスアプリを書いて、うまくいきました!私は私のポート3000アプリのラインのほとんどをコメントアウトしようとしたので、それは私の3001アプリと基本的に同じでしたが、それでも動作しませんでした。私はwebpackが何か変わったことをしているのではないかと疑い始め、ついに実現し始めました...下記の答えを見てください。