序文
1. デフォルトの設定構文 メイン設定ファイルとしてのnginx.conf include /etc/nginx/conf.d/*.conf は、このディレクトリ内の.confファイルも読み込みます。 1.1 グローバルおよびサービスレベル user 同時接続数を増やすために、ユーザーワーカープロセスを使用するように設定します。CPU と一貫性を保ちます。8 つのコアに対して 8 つの error_logs を設定します。nginx エラーログ pid。nginx サービス起動 pid 1.2 イベント用イベントモジュール worker_connections プロセスが処理できる接続の最大数は、使用されるカーネルモデルを定義します。 1.3 サーバー root ホームページのパス index ホームページでアクセスするデフォルトのページ error_page 500 502 503 504 /50x.html エラーページの先頭の 500 は **`http ステータス コード`** です systemctl nginx.service を再起動して nginx を再起動します。 systemctl reload nginx.service はサービスをシャットダウンせずに穏やかに再起動します。 2. HTTP curl-v http://www.baidu.com >/dev/null #-v はステータスコードやその他の情報も表示します nginx -V # nginx のバージョンと設定ファイルの情報を表示します 3. ログ ログの種類: error.log および access.log error.log (http リクエストの処理のエラー ステータスと nginx 自体のエラー ステータスを記録します) access.log (各 http リクエストのアクセス ステータス) log_format: ログ記録形式を設定し、error.log および access.log にログを記録する方法を定義します。log_format 構成は、http モジュールでのみ構成できます。 access_log は http で設定されます。 4. 変数 接続制限 limit_conn_module
|
limit_req_mudule 構文 | 範囲 | 例示する |
---|---|---|
limit_req_zone キー zone=スペース名:スペース サイズ rate=1 秒あたりのリクエスト数; | http | ストレージスペースを宣言するために使用される |
limit_req zone=スペース名[burst=キューの数] [nodelay]; | http、サーバーまたは場所 | ストレージスペースに対する同時リクエスト数を制限するために使用されます |
ここのゾーンは接続を保存するためのスペースでもあります。
バーストとノードレイ
burst
とnodelay
、同時リクエストの処理を遅延するためのバッファと戦略を設定します。
まず、次のzone
構成があると仮定します。
http { limit_req_zone $binan_remote_addr ゾーン=req_zone:1m レート=10r/s; }
ケース1: limit_req zone=req_zone;
1
の 1 秒間に10
リクエストが送信され、応答は正常です。1
1 秒間に13
リクエストが送信されます。最初の10
リクエストは正常に応答され、最後の3
503(Service Temporarily Unavailable)
。 brust
とnodelay
がない場合、 rate=10r/s
1 秒あたり10
リクエストしか実行できず、 503
を超えるエラーが直接返されます。
ケース2: limit_req zone=req_zone brust=5;
1
の 1 秒間に10
リクエストが送信され、応答は正常です。1
1 秒間に13
リクエストが送信されます。最初の10
リクエストは通常どおり応答され、最後の3
リクエストは一時brust
され、応答を待機します。1
1 秒間に、 20
リクエストが送信されます。最初の10
リクエストは通常どおり応答されます。次の5
リクエストはbrust
に入れられ、応答を待機します。最後の5
のリクエストは503(Service Temporarily Unavailable)
を返します。 2
秒間に、 brust
内の5
リクエストが実行されます。1
に、 20
リクエストが送信されます。最初の10
リクエストは正常に応答され、次の5
リクエストはbrust
に送られて応答を待機し、最後の5
件のリクエストは503(Service Temporarily Unavailable)
を返します。 2
秒間に、 6
件のリクエストが送信され、 brust
内の5
リクエストが実行され、 5
リクエストがbrust
に送られて応答を待機し、残りの1
リクエストは503(Service Temporarily Unavailable)
返します。 brust=5
が追加され、 nodelay
が追加されていない場合、容量5
のバッファが存在します。 rate=10r/s
、1 秒あたり10
リクエストしか実行できません。超過したリクエストはバッファに入れられます。バッファがいっぱいになると、 503
エラーが直接返されます。バッファはリクエストを取り出し、次の期間に応答します。さらにリクエストが来る場合、バッファにそれらを格納し続けます。リクエストが多すぎる場合は、 503
エラーが返されます。
ケース3: limit_req zone=req_zone brust=5 nodelay;
1
の 1 秒間に10
リクエストが送信され、応答は正常です。1
に13
リクエストが送信され、 13
正常に応答されました。1
1 秒間に20
リクエストが送信されます。最初の15
リクエストは正常に応答され、最後の5
503(Service Temporarily Unavailable)
。1
に20
リクエストが送信され、最初の15
リクエストは正常に応答され、最後の5
リクエストは503(Service Temporarily Unavailable)
を返します。 2
秒間に6
リクエストが送信され、正常に応答されます。 brust=5
およびnodelay
の場合、容量5
のバッファがあり、 rate=10r/s
1 秒あたり15
リクエストを実行できます ( 15=10+5
)。より直接的に503
エラーを返します。
IPベースのアクセス制御
http_
access_module: IP ベースのアクセス制御。プロキシを介して制限を回避できます。善良なユーザーからは保護されますが、悪意のあるユーザーからは保護されません。
http_access_module 構文 | 範囲 | 例示する |
---|---|---|
許可する IP アドレス | CIDR ネットワーク セグメント | unix: | すべて; | http、サーバー、場所、limit_except | IPアドレス、CIDRネットワークセグメント、Unixソケット、またはすべてのソースからのアクセスを許可する |
IP アドレスを拒否 | CIDR ネットワーク セグメント | unix: | すべて; | http、サーバー、場所、limit_except | IPアドレス、CIDRネットワークセグメント、Unixソケット、またはすべてのソースによるアクセスをブロックします。 |
許可と拒否は上から下の順に配置され、最初に一致するルールを見つけてアクセスが許可されるかどうかを決定します。そのため、通常はall
が最後に配置されます。
位置 / { 192.168.1.1 を拒否します。 192.168.1.0/24 を許可します。 10.1.1.0/16 を許可します。 2001:0db8::/32 を許可します。 すべてを否定する; }
ユーザーパスワードに基づくアクセス制御
ht
tp_auth_basic_module: ユーザーパスワードに一致するファイルに基づくログイン
http_auth_basic_module 構文 | 範囲 | 例示する |
---|---|---|
auth_basic アカウントのパスワードを入力してください| off; | http、サーバー、場所、limit_except | ユーザーのログインプロンプトを表示します(一部のブラウザではプロンプトは表示されません) |
auth_basic_user_file は、アカウント パスワードが保存されるファイル パスです。 | http、サーバー、場所、limit_except | ファイルからアカウントパスワードを一致させる |
パスワード ファイルはhtpasswd
によって生成できます。htpasswd htpasswd
yum install -y httpd-tools
インストールする必要があります。
# -c は新しいファイルを作成し、-b はパラメータに直接パスワードを入力します $ htpasswd -bc /etc/nginx/conf.d/passwd user1 pw1 ユーザーuser1のパスワードを追加しています $ htpasswd -b /etc/nginx/conf.d/passwd ユーザー2 パスワード2 ユーザーuser2のパスワードを追加 $ cat /etc/nginx/conf.d/passwd ユーザー1:$apr1$7v/m0.IF$2kpM9NVVxbAv.jSUvUQr01 ユーザー2:$apr1$XmoO4Zzy$Df76U0Gzxbd7.5vXE0UseE0
参考文献
制限接続モジュール
制限要件
http_アクセスモジュール
http_auth_basic_モジュール
要約する
以上が、Nginx をベースとしたアクセス制御と接続制限についてご紹介した内容です。お役に立てれば幸いです。ご質問がございましたら、メッセージを残していただければ、すぐに返信させていただきます。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!
<<: MySQLデータベースの追加、削除、変更操作の詳細な説明
>>: Vueはタブナビゲーションバーを実装し、左右のスライド機能をサポートしています
目次事前分析とは何ですか?変数と関数の準備の違いvar 変数の繰り返し宣言変数と関数の昇格の優先順位...
Linux で新たに発見された sudo の脆弱性を悪用すると、特定のユーザーが root としてコ...
序文BINARY と VARBINARY は、文字列ではなくバイナリ文字列を格納する点を除いて、CH...
接続は、実際の外部キー(人工的に作成された 2 つのテーブル間の対応関係を指します。対照的に、FOR...
目次ネイティブJavaScriptとはA. 新しいブラウザでnullオブジェクトをチェックするコンス...
このチュートリアルの動作環境: Windows 7 システム、vue 2.9.6 バージョン、DEL...
目次1. 仮想マシンをダウンロードする2. 仮想マシンのインストールVMware のダウンロードとイ...
概要オンラインサービスへのアクセス中に 500 または 502 エラーが発生した場合、緊急処理とトラ...
この記事では、Linux システム コマンドについて説明します。ご参考までに、詳細は以下の通りです。...
いつものように、まずは画像効果を投稿しましょう: このエフェクトの原理は非常にシンプルです。CSS3...
Centos yumフォルダを開くコマンドcd /etc/yum.repos.d/を入力します。 w...
序文この記事は主にMySQLコマンド階層検索ヘルプの使用に関する内容を紹介します。この記事のサンプル...
1. MavenをダウンロードするMaven 公式サイト: http://maven.apache...
効果(ソースコードは最後にあります): 成し遂げる: 1. タグを定義します。 <h1>...
目次質問1. webpack webpack-cliをインストールする2. webpackのバージョ...