node-http-proxyアプリケーションでhttp.Agent
とhttps.Agent
を使用して接続プーリングを有効にしたいと考えています。これを行うには、私はそうのように、安全なエージェントを設立しました:node-http-proxy経由でプロキシを行うときにhttps.Agentが解析エラーをスローするのはなぜですか?
const secureAgent = new https.secureAgent({ keepAlive: true });
は(私は簡潔にするために補完的なHTTPエージェントを省略されました。)
は、私のような、プロキシサーバーを作成します。
そのような接続ミドルウェア内部const proxy = httpProxy.createProxyServer({});
最後に、私のプロキシ要求:
proxy.web(req, res {
agent: isSecure ? secureAgent : agent,
target: ...,
secure: false,
});
これは、ほとんどのREQのために働くようですuestsが、私はこのようになりますエラー表示されたら、数分ごと:レスポンスが不正な形式であるとき、いくつかのぞんざいな読書から
{
"message": "Parse Error",
"stack": "Error: Parse Error\n at TLSSocket.socketOnData (_http_client.js:411:20)\n at emitOne (events.js:96:13)\n at TLSSocket.emit (events.js:191:7)\n at readableAddChunk (_stream_readable.js:178:18)\n at TLSSocket.Readable.push (_stream_readable.js:136:10)\n at TLSWrap.onread (net.js:560:20)",
"bytesParsed": 215,
"code": "HPE_INVALID_CONSTANT",
"__error_callsites": [
{},
{},
{},
{},
{},
{}
],
"level": "error",
"timestamp": "2017-04-18T17:34:09.735Z"
}
を、それがHPE_INVALID_CONSTANT
マニフェストです。ただし、これらの応答はセキュアエージェントの導入までは問題ありません。
誰でもここで何が起こっているのか、どうやって修正できるのでしょうか?
注:このエラーは、Dockerコンテナのノードv7.9.0でFROM node:7.9
経由で発生します。これまでのところ、私はHEAD
リクエストでのみこれを観察しました。何らかの理由があります。
あなたのリクエストパラメータには、?a = "ab"のような空白があります –
私はこの特定のケースでは非常に起こりそうにないと言われているリクエストパラメタの網羅的なリストを持っていません - これらはプロキシされている彼らが何かになる可能性があるように顧客のサイトに対する要求。 – maxcountryman
私は同様の問題に直面していました。 (ノード要求ライブラリを使用していました)、私のケースでは、要求パラメータの値の1つにあります。さらに、私はhttp:// localhost(nginx)へのリクエストを作成していましたが、これはPythonでhttps:// localhostにリダイレクトされていました。これらの2つの組み合わせが私の問題を引き起こしていました。一つのことは、私のケースでは利用可能なリクエストボディを持っていたが、Parseエラーが来たことに気づいた。私は、エラーを無視し、応答を送信する小さなハックを行いました。あなたが望むなら私はコードを共有することができます。 PS - モバイルを使用してタイプミスやエラーを入力してください –