NLBによるHTTP(8080)ロードバランス時にブラウザを更新すると「ERR_INVALID_HTTP_RESPONSE」が稀に表示されてしまう

0

【事象】 異なるAZを跨る2つのプライベートサブネット上にEC2インスタンス(Apache-Tomcat)を構築し、NLBのリスナーにApache-Tomcat用8080ポートを設定。NLBのターゲットグループに該当インスタンスを指定してロードバランシング環境を構築しました。 プライベートサブネットの踏み台サーバーのブラウザで、「http://{NLBのプライベートDNS名}:8080」に接続すると、通常はApache-Tomcatの画面に遷移しますが、まれに「ERR_INVALID_HTTP_RESPONSE」エラーページを表示してしまう事象が発生しました。 該当インスタンスのローカル上で「http://localhoset:8080」を表示すると事象は発生しませんでした。 検証として、NLBとEC2インスタンスの間にALBを導入(NLB-ALB-EC2)すると、該当のエラーページは表示されませんでした。よって、NLBを通すことによって発生する事象と判断しました。

なぜ、NLBだけでHTTP(8080)のロードバランシングを行うと、稀にエラーページが表示されてしまうのでしょうか?ご教授のほどよろしくお願いいたします。

【環境】 ・WindowsServer2019  Apache-Tomcat(9.0.91)

質問済み 3ヶ月前304ビュー
1回答
0

パケットキャプチャなどを見ないと何とも言えませんがセッションなどがアプリケーション側で管理できていないのかもしれません。
HTTPでアプリケーションが動いているのであればALBでもよいと思うのですがNLBを使用しているのには何か制限があるのでしょうか?
https://aws.amazon.com/jp/elasticloadbalancing/faqs/

profile picture
エキスパート
回答済み 3ヶ月前
  • ご確認ありがとうございます。 >HTTPでアプリケーションが動いているのであればALBでもよいと思うのですがNLBを使用しているのには何か制限があるのでしょうか?

    こちらに関しては、HTTP以外にもファイル共有(TCP/139,445)のポートをバランシングしたかったためNLBを採用致しました。コスト削減の観点でNLB一本で対応したかったという背景があります。

  • 背景理解しました。 Apache-Tomcat側でタイムアウト値を調整したりして改善するかご確認いただけますか?

  • 今回の事象に関して、Apache-Tomcat側でタイムアウト値を調整することで、改善する見込みがあるということで認識齟齬ないでしょうか。 そのうえで確認させていただきたいのですが、Apache-Tomcat側のタイムアウト値というのは、以下の内どちらを指しており、具体的にどのような値に変更するべきでしょうか。 私自身、アプリ側に疎く確認が精一杯となります。お手数をおかけしますがご教授のほどよろしくお願いします

    ・keepAliveTimeout(server.xml) ・session-timeout(web.xml)

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン