ネットワークセグメント内の IP アドレスに対する Nginx の接続制限設定の詳細な説明

ネットワークセグメント内の IP アドレスに対する Nginx の接続制限設定の詳細な説明

Nginx におけるいわゆる接続制限は、実際には TCP 接続、つまり 3 ウェイ ハンドシェイク後にリクエスタによって正常に確立された接続ステータスです。 Nginx は通常、接続制限機能を提供するために ngx_http_limit_conn_module モジュールを提供します。このモジュールは、単一の IP ソースからの接続数など、定義されたキーに基づいて各キー値の接続数を制限できます。

ngx_http_limit_conn_module ディレクティブの説明

構文: limit_conn ゾーン番号;
デフォルト: -
コンテキスト: http、サーバー、場所

このディレクティブは、セッション状態の保存領域について説明します。キーの状態には現在の接続数が保持され、キーの値は特定の変数に対して null 以外の任意の値にすることができます (null 値は考慮されません)。 $variable はキーを定義し、zone=name はゾーン名を定義します。 一般的な使用例:

limit_conn_zone $binary_remote_addr ゾーン=addr:10m;

サーバー{
  場所 /download/ {
    limit_conn アドレス 1;
  }

上記の例は、/download/ へのアクセス要求が行われた場合、同時に 1 つの要求接続のみがリソースを正常にダウンロードできることを示しています。

ネットワークセグメント制限

一般的な limit_conn_zone 構成では、通常、単一の IP またはホスト レベルでの接続数を制限すべく $binary_remote_addr または $server_name を設定します。

しかし、特定の IP セグメントへの接続数を制限したい場合には、次のようにします。

http {

……

  limit_conn_zone $ip_segment ゾーン=ネットワークセグメント:10m;

  サーバー{
      ……
      $ip_segment $remote_addr を設定します。

      $ip_segment ~ ^(\d+)\.(\d+)\.(\d+)\.(\d+) の場合 {
        $ip_segmentを$1.$2.$3に設定します。
      }

      場所 /download/ {
        limit_connネットワークセグメント10; 
        #制限レート 200k;
      }

  }
}

これは基本的に、ネットワーク セグメント内のすべての IP の接続数に統一された接続制限を課すという Nginx の要件を満たします。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Nginxの現在の制限設定の詳細な説明
  • Nginx 急ぎ購入 電流制限構成 実装分析
  • Nginx の現在の制限と構成管理の実践記録

<<:  Vueは秒殺しのカウントダウンコンポーネントを実装する

>>:  MySQLデータファイルの保存場所を表示する方法

推薦する

DockerがMySQL構成実装プロセスを開始

目次実際の戦闘プロセスまずは主なコマンドと詳細を一つずつ説明しましょう起動が成功したかどうかを確認す...

Ubuntu 向け VMware Tools のインストールと構成のチュートリアル

以前、ブロガーは VMware 仮想マシンに Ubuntu システムをインストールしました。まだイン...

JavaScript を使用した Web 計算機の作成

この記事は主にJavaScriptを使用してWeb計算機を実現する効果を記録し、参考として掲載してい...

純粋な CSS ヘッダーの実装コードを修正

純粋な CSS で固定ヘッダーを実装するのが難しい主な理由は 2 つあります。まず、最大のシェアを持...

Docker Swarm 外部検証ロードバランシングが機能しない場合の解決策

問題の説明Centos7 をローカルにインストールして 3 つの仮想マシンを作成し、Swarm クラ...

MySQL アカウント情報をエレガントにバックアップする方法

序文:最近、インスタンスの移行の問題に遭遇しました。データの移行後、データベースのユーザーと権限も移...

MySQLストアドプロシージャにおけるカーソル(DECLARE)の原理と使い方の詳細な説明

この記事では、例を使用して、MySQL ストアド プロシージャにおけるカーソル (DECLARE) ...

ウェブページ(ウェブサイト)のデザインと制作に関する考えや経験の共有

まずは投稿する前に! 「I Want to Study on My Own!」に改めて感謝します。た...

JS はシンプルな todoList (メモ帳) 効果を実装します

メモ帳プログラムは、HTML + CSS + JavaScript の 3 つの主要なフロントエンド...

Reactの簡単な紹介

目次1. CDNの紹介1.1 react (最初にインポート) 1.2 react-dom(後ほど紹...

MySQL で削除されたレコードが有効にならない理由のトラブルシューティング

オンライン MySQL トランザクションの問題の記録先週の金曜日、大きなテーブルを削除する操作を実行...

HTML減量 HTMLタグを合理化してWebページを作成する

HTML4 についてHTML (XHTML ではありません)、MIME タイプは text/html...

MySQLでデータテーブルを作成するときにエンジンMyISAM/InnoDBを設定する

mysql を構成するときに、構成ファイル内のデフォルトのストレージ エンジンを InnoDB に設...

8桁の割引コードをランダムに生成し、MySQLデータベースに保存します。

現在、多くの企業が割引コードを通じてプロモーションを行っています。今では、8桁の割引コードを実装して...

LeetCode の SQL 実装 (175. 2 つのテーブルの結合)

[LeetCode] 175.2つのテーブルを結合する表: 人物+-------------+--...