検索
ホームページ運用・保守NginxNginxの電流制限を実装する方法

nginx 電流制限の仕組み

nginx 電流制限は、通信およびパケット交換ベースのコンピュータ ネットワークで広く使用され、緊急事態に対処するために使用されるリーキー バケット アルゴリズムを使用します。帯域幅が制限されている場合。この原理は、バケツに水が上から入り、下から漏れるのと非常によく似ており、水の流入量が水の漏れ量よりも大きい場合、バケツはあふれます。

リクエスト処理プロセスでは、水はクライアントからのリクエストを表し、バケットはリクエストが先入れ先出し (fifo) アルゴリズムに従って処理されるのを待っているキューを表します。 。リークはリクエストがバッファから出てサーバーによって処理されることを意味し、オーバーフローはリクエストがドロップされ、処理されないことを意味します。

Nginxの電流制限を実装する方法

1. アクセス頻度の制限 (通常のトラフィック)

nginx では、ngx_http_limit_req_module モジュールを使用してリクエストのアクセス頻度を制限します。 、リーキーバケットアルゴリズムの実装に基づいています。次に、nginx の limit_req_zone および limit_req 命令を使用して、単一 IP のリクエスト処理速度を制限します。

構文: limit_req_zone keyzone rate

Nginxの電流制限を実装する方法

  • key: 現在の制限オブジェクトを定義します。binary_remote_addr はキーですは、remote_addr (クライアント IP) に基づく電流制限を意味します。binary_ の目的は、メモリ使用量を圧縮することです。

  • zone: アクセス情報を格納する共有メモリ領域を定義します。myratelimit:10m はサイズ 10m、名前が myratelimit のメモリ領域を表します。 1mごとに16,000個のIPアドレスのアクセス情報を保存できるため、10mで160,000個のIPアドレスのアクセス情報を保存できます。

  • 「rate」パラメータは、最大アクセス レートを設定するために使用されます。「rate=10r/s」は、1 秒あたり 10 件以下のリクエストが処理されることを意味します。 nginx は実際にはミリ秒の粒度でリクエスト情報を追跡するため、実際には 10r/s が制限です。つまり、100 ミリ秒ごとに 1 つのリクエストが処理されます。これは、最後のリクエストが処理されてから 100 ミリ秒以内に別のリクエストが到着した場合、そのリクエストの処理は拒否されることを意味します。

2. アクセス頻度の制限(バーストトラフィック)

上記の設定により、トラフィックが急激に増加した場合、超過リクエストが発生します。拒否され、バースト トラフィックを処理できません。バースト トラフィックにどのように対処すればよいでしょうか? nginx は、バースト トラフィックの問題を解決するためにバースト パラメーターを提供し、nolay パラメーターと組み合わせて使用​​されます。バーストはバースト、バーストと翻訳され、設定された処理速度を超えた後に処理できる追加のリクエストの数を示します。

Nginxの電流制限を実装する方法

burst=20 nolay は、これら 20 個のリクエストが遅延なく即座に処理されることを意味します。これは、特殊なケースを処理することと同じです。ただし、これら 20 個のバースト リクエストがすぐに処理されたとしても、後続のリクエストはすぐには処理されません。バースト=20 は、キャッシュ キューの 20 個のホールを占有することと同等であり、リクエストが処理されたとしても、この 20 個の位置は 100ms ごとにしか解放されません。これにより、安定した速度の効果が得られますが、突然のトラフィックも正常に処理できます。

3. 同時接続数を制限する

nginx の ngx_http_limit_conn_module モジュールには、リソース接続数を制限する機能があり、limit_conn_zone および limit_conn 命令を使用するだけです。

Nginxの電流制限を実装する方法

limit_conn perip 20: 対応するキーは $binary_remote_addr です。これは、単一の IP が同時に保持できる接続は最大 20 に制限されていることを意味します。 limit_conn perserver 100: 対応するキーは $server_name で、仮想ホスト (サーバー) が同時に処理できる同時接続の合計数を示します。この接続は、要求ヘッダーがバックエンド サーバーによって処理された後にのみカウントされることに注意してください。

以上がNginxの電流制限を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は亿速云で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
nginxとapacheを選択する:あなたのニーズに合った適切nginxとapacheを選択する:あなたのニーズに合った適切Apr 15, 2025 am 12:04 AM

NginxとApacheには独自の利点と短所があり、さまざまなシナリオに適しています。 1.Nginxは、高い並行性と低リソース消費シナリオに適しています。 2。Apacheは、複雑な構成とリッチモジュールが必要なシナリオに適しています。コア機能、パフォーマンスの違い、ベストプラクティスを比較することで、ニーズに最適なサーバーソフトウェアを選択するのに役立ちます。

nginxを開始する方法nginxを開始する方法Apr 14, 2025 pm 01:06 PM

質問:nginxを開始する方法は?回答:nginxスタートアップnginx検証nginxはnginxを開始しました他のスタートアップオプションを自動的に開始

Nginxが開始されるかどうかを確認する方法Nginxが開始されるかどうかを確認する方法Apr 14, 2025 pm 01:03 PM

nginxが開始されるかどうかを確認する方法:1。コマンドラインを使用します:SystemCTLステータスnginx(Linux/unix)、netstat -ano | FindStr 80(Windows); 2。ポート80が開いているかどうかを確認します。 3.システムログのnginx起動メッセージを確認します。 4. Nagios、Zabbix、Icingaなどのサードパーティツールを使用します。

nginxを閉じる方法nginxを閉じる方法Apr 14, 2025 pm 01:00 PM

NGINXサービスをシャットダウンするには、次の手順に従ってください。インストールタイプを決定します:Red Hat/Centos(SystemCtl Status Nginx)またはDebian/Ubuntu(Service Nginx Status)サービスを停止します:Red Hat/Centos(SystemCtl Stop Nginx)またはDebian/Ubuntu(Service Nginx Stop)無効自動起動(オプション):Debuntos/Centos/Centos/Centos/Centos/Centos (syst

Windowsでnginxを構成する方法Windowsでnginxを構成する方法Apr 14, 2025 pm 12:57 PM

Windowsでnginxを構成する方法は? nginxをインストールし、仮想ホスト構成を作成します。メイン構成ファイルを変更し、仮想ホスト構成を含めます。 nginxを起動またはリロードします。構成をテストし、Webサイトを表示します。 SSLを選択的に有効にし、SSL証明書を構成します。ファイアウォールを選択的に設定して、ポート80および443のトラフィックを許可します。

nginx403エラーを解く方法nginx403エラーを解く方法Apr 14, 2025 pm 12:54 PM

サーバーには、要求されたリソースにアクセスする許可がなく、NGINX 403エラーが発生します。ソリューションには以下が含まれます。ファイル許可を確認します。 .htaccess構成を確認してください。 nginx構成を確認してください。 SELINUXアクセス許可を構成します。ファイアウォールルールを確認してください。ブラウザの問題、サーバーの障害、その他の可能なエラーなど、他の原因をトラブルシューティングします。

Linuxでnginxを開始する方法Linuxでnginxを開始する方法Apr 14, 2025 pm 12:51 PM

Linuxでnginxを開始する手順:nginxがインストールされているかどうかを確認します。 systemctlを使用して、nginxを開始してnginxサービスを開始します。 SystemCTLを使用して、NGINXがシステムスタートアップでNGINXの自動起動を有効にすることができます。 SystemCTLステータスNGINXを使用して、スタートアップが成功していることを確認します。 Webブラウザのhttp:// localhostにアクセスして、デフォルトのウェルカムページを表示します。

Nginxが起動されているかどうかを確認する方法は?Nginxが起動されているかどうかを確認する方法は?Apr 14, 2025 pm 12:48 PM

Linuxでは、次のコマンドを使用して、nginxが起動されるかどうかを確認します。SystemCTLステータスNGINXコマンド出力に基づいて、「アクティブ:アクティブ(実行)」が表示された場合、NGINXが開始されます。 「アクティブ:非アクティブ(dead)」が表示されると、nginxが停止します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、