ネットワークセグメント内の 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データファイルの保存場所を表示する方法

推薦する

JavaScript によるダイナミッククリスマスツリーの詳細な説明

目次1. CSS のみを使用して作成したアニメーションのクリスマスツリー2. CSS のみを使用して...

Linux/CentOS システムでネットワーク時間を同期する 2 つの方法の詳細な説明

ハードウェア上の理由により、機械は標準時間にある程度追いつけない場合があり、その誤差は 1 か月で数...

Swiper.jsプラグインを使用すると、カルーセル画像を非常に簡単に実装できます。

Swiper は、携帯電話やタブレットなどのモバイル端末向けに設計された、純粋な JavaScri...

訪問者を惹きつけるウェブサイトコンテンツを作成する14の方法

ネットサーフィンをしていると、私の注意を引こうとする美しいグラフィックでいっぱいの Web サイトを...

CentOS 7.6 Telnetサービス構築プロセス(Opensshアップグレードバトル第一弾のバックアップトランスポートライン構築)

不明な点があるときはいつでも、Blog Park にアクセスして、いつでも答えやインスピレーションを...

Sitemesh チュートリアル - ページ装飾技術の原理と応用

1. 基本概念1. Sitemeshはページ装飾技術です。 1 : フィルターを通してページアクセス...

面接の質問: 3 行 3 列のレイアウト、表は結合され、ネストされた表は許可されません

面接の質問で、3 行 3 列のレイアウトが求められます。1 行目の 2 番目の列と 2 行目の 2 ...

SSHのssh-keygenコマンドの基本的な使い方の詳細な説明

SSH 公開鍵認証は、SSH 認証方式の 1 つです。 SSH パスワードフリーのログインは公開鍵認...

DockerでJenkinsをインストールし、初期プラグインのインストール失敗の問題を解決する

Jenkins をインストールした後、プラグインの初期ダウンロードが常に失敗し、インストールが失敗し...

Linux でファイルプレフィックスを一括で追加する方法

フォルダー内のすべての txt ファイルのファイル名の前に「gt_」を追加する必要があります。つまり...

MySQLとRedisキャッシュ間の同期ソリューションについての簡単な説明

目次1. ソリューション 1 (UDF)デモケース2. ソリューション2(binlogの解析)キャナ...

Mysqlデータベースの文字化けに対処する方法

MySQL では、データベースの文字化けは一般的に文字セットを設定することで修正できますが、文字化け...

Linux crontab コマンドの使用

1. コマンドの紹介contab (cron テーブル) コマンドは、Windows のスケジュール...

mysql8.0.20 のデータディレクトリを移行する方法

mysql のデフォルトのストレージ ディレクトリは/var/lib/mysql/です。以下は、デフ...

MySQL Community Server 5.6.39 のインストール方法

この記事では、MySQLのダウンロードとインストールの詳細なチュートリアルを記載しています。具体的な...