0

私はワニス4 + nginx + ELBを使用しています。varnishlog を実行すると、次のような新しいセッションが 2 秒ごとに表示され続けます。

*   << Session  >> 65622     
-   Begin          sess 0 HTTP/1
-   SessOpen       10.90.148.245 16560 :80 10.13.12.136 80 1476955364.127661 17
-   SessClose      RX_TIMEOUT 5.005
-   End      

ELB からワニス サーバーを削除すると、これらのセッションが表示されません。これらのセッションはどこから来たのですか? (ELB ヘルスチェック間隔は 300 秒)

数日後に ELB がインスタンスを追い出す理由を調査した後、この問題を発見しました。

4

1 に答える 1

2

これらは ELB IP アドレスではありません。

本気ですか?

ELB の各ノード (通常、トラフィックの少ない環境では 2 つまたは 3 つのノードがあります) には、パブリック アドレスとプライベート アドレスの 2 つの IP アドレスがあります。

EC2 コンソールの [Network & Security] > [Network Interfaces] で問題の IP アドレスを見つけます。「Attachment owner」amazon-elbがバランサーの名前に設定され、「Description」が設定されているはずです。

それが実際にあなたの ELB ではない場合、これはそれが何であるかを教えてくれるはずです。

それが ELB である場合、これらはほぼ確実に、次のクライアント要求が到着したときに新しい接続をセットアップするための待機を避けるために、パフォーマンス上の理由から ELB がインスタンスに対して開いたままにしようとしている「予備の」接続です。

あなたのワニスのセットアップはそれらをかなり早く閉じているので、ELB は再試行します。

ELB のアイドル タイムアウト (デフォルトは 60 秒) よりも大きな値に増やすreq_timeoutことができるはずです。

Varnish (または他の Web サーバー) がインターネットに直接公開されている場合、ランダムなブラウザーがリソースを拘束することは望ましくないため、このアドバイスは異なります...しかし、HTTP/S (TCP ではない) モードの ELB の場合、ELB は、それぞれがインスタンスへの接続を消費することなく、ブラウザーからのアイドル状態の永続的な接続を管理します。ELB の前面と背面の接続間に 1 対 1 の相関関係はありません。

于 2016-10-20T16:31:17.913 に答える