ビジネス上のニーズにより、急ぎの購入が発生することが多いため、ロード バランシング フロント エンドでのエラーの流れを制限する必要があります。この記事は、CC の防止にも適用されます。 limit_req_zone $server_name zone=sname:10m rate=1r/s; #サーバーへのアクセスを1秒あたり1回のみに制限します #limit_req_zone $binary_remote_addr zone=one:3m rate=1r/s; #IPを制限し、1秒あたり1回のアクセスのみに制限します #limit_req_zone $binary_remote_addr $uri zone=two:3m rate=1r/s; #パラメータなしでIPとパスを制限します #limit_req_zone $binary_remote_addr $request_uri zone=thre:3m rate=1r/s; #パラメータでIPとパスを制限する server { 聞く 80; サーバー名 www.abc.com; 位置 / { host/proxy.cnf をインクルードします。 proxy_pass http://backend; } 場所 /api/createOrder { limit_req zone=sname; #バーストなし、通常のリクエストは1つだけ limit_req_status 503; #返されるステータスコードを503に設定する #limit_req zone=sname burst=5 nodelay; #最大同時実行数は 5 で、リアルタイム処理には host/proxy.cnf が含まれます。 proxy_pass http://backend; error_page 503 =200 /50x.html; #これは非常に重要です。エラーステータスコードを503に設定し、結果を200として返すことができます。 } 場所 = /50x.html { $http_user_agent の場合、"モバイル|android|iPhone|iphone|ios|iOS"){ #default_type アプリケーション/json; return 200 '{"msg": "イベントは人気が高すぎます。後でもう一度お試しください!","data": {},"code": -1}'; #モバイル端末にエラーメッセージ表示を返すように設定します} root html; #PCの場合はHTMLページを返す} } ポイント: 通常の状況では、現在の制限が設定されている場合、返されるステータス コードは 503 です。モバイル端末の場合、JSON データを返してもクライアントはそれを認識しません。このとき、error_page 403 =200 /50x.html; を通じてステータス コードを巧みに 200 に設定できます。 上記では ngx_limit_req_module のみを使用していますが、ngx_limit_conn_module モジュールも使用できます。 参考: https://gist.github.com/simlegate/75b18359316cc33d8e20 特に、コンサルティングサイトの一部がクローラーのターゲットになっている場合、サーバーがクローラーによって強制終了される可能性があります(これは小規模なウェブサイトの場合に当てはまります) # グローバル設定 limit_req_zone $spider zone=spider:60m rate=200r/m; # クローラーの実行を 1 分間に 200 回に制限します # サーバー内 limit_req zone=spider burst=5 nodelay; $http_user_agent の場合、"スパイダー|ボット" になります { set $spider $http_user_agent; #変数を設定し、ここに入力すると速度を制限します} 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Vue はコンポーネント間の通信をどのように実装しますか?
>>: MySQL テーブルを削除する際の I/O エラーの原因分析と解決方法
この記事では、Windows Server オペレーティング システムのインストールと企業でのそのア...
序文SQL の言語分類には主に以下の種類があります。 DDLデータ定義言語作成、削除、変更データ定義...
序文「データベース トランザクションの特徴は何ですか?」と尋ねられたら、 ACID 特性である原子性...
序文以前、ある会社の面接に行ったとき、面接官から「オブジェクトを深くコピーするにはどうすればよいです...
目次1. 関数パラメータのデフォルト値1.1 関数パラメータのデフォルト値の指定1.2 分離割り当て...
Bステーションでパスワードを入力するときに目を覆っているこの画像を見たことがある人もいると思いますこ...
最近のプロジェクトでは、ブレークポイントからビデオの再生を再開する機能を実装する必要がありました。こ...
この記事では、Vueの自己ネストツリーコンポーネントの使い方を参考までに紹介します。具体的な内容は次...
目次1 テスト環境1.1 サーバーハードウェア1.1.1 t2.マイクロ1.1.2 c5.large...
始める段階から初心者になるまで、Linux オペレーティング システムは不可欠です。最初のステップは...
目次1. import_tableの紹介2. データのロードとテーブル関数のインポートの例2.1 L...
目次1. はじめに2. 実際の事例1. App.vueを変更する2. レイアウトを調整する3. ジャ...
Linux col コマンドLinux の col コマンドは制御文字をフィルタリングするために使用...
DML 操作とは、データベース内のテーブル レコードに対する操作を指し、主にテーブル レコードの挿入...
Nginx は、IP ベースの仮想ホスト構成、ポート ベースの仮想ホスト構成、ドメイン名ベースの仮想...