既存の DigitalOcean ロードバランサーリソースでは、一致する TCP プロトコルでクライアントのプロキシのバイトストリームを保持します。

forwarding_rule {
  entry_port      = 3128
  entry_protocol  = "tcp"
  target_port     = 3128
  target_protocol = "tcp"
}

実際のターゲット、ネットワーク制限、ヘルスチェックはこの断片の周囲に保ちます。クライアントはロードバランサーのアドレスを使い、Squid は自身のリスナーでストリームを受け取ります。

フォワードプロキシは絶対形式の HTTP ターゲットと HTTPS 用の CONNECT を受け入れます。通常の HTTP ロードバランシングモードは、そうした会話を明示的にサポートする必要があります。リスナーを HTTP と呼んでも、その互換性は証明されません。

ポートだけでなく確認してください。TCP ヘルスチェックは受け入れを証明し、許可されたターゲットへの認証済み CONNECT はプロキシの契約を試します。

IP 認可に頼る前に、Squid が見る送信元アドレスを確認してください。PROXY プロトコルのメタデータを使う場合は両端での対応が必要で、プロキシ要求の前にバイトが追加されます。ターゲットの保守中は稼働中のトンネルを意図的に排出してください。プロセスを突然削除すると切断されます。

関連記事