序文
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はタブナビゲーションバーを実装し、左右のスライド機能をサポートしています
私は数年間 vi エディタを使ってきましたが、実用的な用途で使ったことはありませんでした。今日 Py...
目次クラスコンポーネント機能コンポーネントsetStateの落とし穴React では多くの場所でデー...
目次1. データソース2. データの総合順位1) 総合ランキング2) 同順位3) 同順位3. データ...
コンテナ間の通信1. コンテナのネットワーク共有このモードの Docker コンテナはネットワーク ...
背景: 最近、資産報告関連の機能に取り組んでおり、中国語入力をサポートする必要があります。通常のショ...
問題: MySQL データベースが予期せずクラッシュしたため、データベースを起動できませんでした。エ...
1. MySQL にログインし、SHOW VARIABLES LIKE 'character...
# VMware ハードディスクの起動優先順位を調整するステップ 1: 電源をオンにすると、BIOS...
まずはエフェクト画像を投稿します:全体的なスタイルとレイアウトが崩れないように、スクロール バーがロ...
リンク: https://qydev.weixin.qq.com/wiki/index.php?ti...
Firefox、Opera、その他のブラウザは Webdings フォントをサポートしていません。回...
1.fullpage.js ダウンロードアドレスhttps://github.com/alvarot...
高さ:100% が機能しないのはなぜですか?この知識は不人気ではありませんが、使用する際には混乱する...
1. RPMバージョンのインストールデータベースの他のバージョンがあるかどうかを確認し、ある場合は完...
1 ユーザーを作成し、ユーザーのルートパスとパスワードを指定します useradd -d /home...