Squid maxconn で接続数を数える
maxconn を接続元ごとの接続数の条件として適用し、そのしきい値を端末数や認証済みユーザー数とみなさない。
maxconn 5 はプロキシの 5 台分のライセンスではありません。クライアントの接続元アドレスに紐づく接続数の条件です。
小さなルール断片は次のようになります。
acl over_connection_limit maxconn 5
http_access deny over_connection_limit
Squid の文書化された一致は、指定した値より「大きい」です。deny ルールがその条件を消費します。ACL を宣言するだけでは何も拒否しません。制限したいリクエストをすでに許可してしまう広いルールより前に置いてください。
この断片の周囲には通常の認可ポリシーを残してください。これは完全なアクセス設定ではありません。ACL は Squid のクライアントデータベースが有効であることにも依存します。動くことを期待する前に client_db を確認してください。
1 台の端末が多数の接続を開くことがあります。 NAT の背後にある複数の端末が 1 つの接続元アドレスとして見えることがあります。共有された 1 台のマシンが複数のユーザーにサービスすることもあり、静かな端末は数える瞬間に接続を持っていないかもしれません。これらの関係はいずれも 1 対 1 ではありません。
実際の要件が名前付きアカウント、登録済み端末、アクティブなセッションの上限であれば、その識別子とライフサイクルを明示的に定義してください。接続元ごとのソケットしきい値は容量を守れますが、その数は人や端末ではなく接続として説明すべきです。