2 行の cache_peer は「まず最初のプロキシを通り、次に 2 番目を通る」という意味ではありません。Squid が選択できる peer を定義するものです。ラウンドロビンのリクエストは、両方を経由せずに親プロキシ間を交互に切り替えられます。

直列ルートは各インスタンスに分散されます。

client → A → B → C → origin
  • A は次のホップとして B を選択します。
  • B は C を選択します。
  • C はオリジンへの接続を開きます。

各受信側は、直接の下流 peer を承認する必要があります。各インスタンスは、次のホップを飛ばすことが禁止されている場合、互換性のある直接アクセス ポリシーも必要です。

これらをサポートするバージョンでは、cache_peer が peer を定義し、cache_peer_access が選択を制限し、never_direct が選択したトラフィックの直接転送を禁止します。peer の定義だけでは、他の 2 つのポリシーのどちらも確立されません。

各ホップで判断を確認してください。A が B を選択したというログは、B が C を選択したことを証明できません。ローカル キャッシュ ヒットは新しい上流接続を完全に回避できるため、1 つのリクエストで親トラフィックがないことは、チェーンが壊れている十分な証拠にはなりません。

関連記事