node.jsの内部バッファ値を増やしたい
○問題
node.jsでプロキシを書いています。
重いPOSTコンテンツをプロキシすると途中で切断されるという現象が起きました。
①クライアント → ②node.jsプロキシ → ③Webサーバー
プロキシの方法としては、②のところでdataイベントで受けたchankを少しずつWebサーバーへ送っています。
この方法だと途中でnode.jsが耐え切れなくなるのか、重いコンテンツをPOSTすると切断されてしまいます。軽いコンテンツのPOSTはうまくいきます。
ちなみに、一度クライアントからPOSTデータを全て受け取ってからWebサーバーへリクエストを送信するとうまく動きます。
うまくいかないのは、dataイベントで受信しつつWebサーバーへ送信を繰り返す処理の場合です。
色々調べたところ、
node.jsのstreamは内部にhighWaterMarkというバッファを持っていて、この総量に限界が来ているのではないかと思っています。
このhighWaterMarkを増やす方法はありますか?
Httpサーバーは普通の作法で以下のように作成しています。
https.createServer(options, function (request, response) {
このrequestとresponseのそれぞれのhighWaterMarkを増やすことができれば解決すると考えています。
steramのコンストラクタでhighWaterMarkを増やせるのは調べてわかりましたが、上記のような生成されたオブジェクトで増やすことは可能なのでしょうか?
ソースコードは理由があって全て載せられないですが、
基本的に無理な負荷をかけなければ正しく快適に動くのでプログラムのどこかが間違っているということは無い前提で答えていただいてかまいません。
補足
書き忘れましたが、node.jsの公式サイトを見るとPIPEで繋げば内部バッファを気にしなくていいみたいなことが書かれていましたが、PIPEで繋いでもやはり負荷によるエラーが発生します。
ですので、内部バッファを増やすことができないかと考えました。