Nginx がリクエスト本文ベースのアクセス制御構成を実装する方法

WBOY
リリース: 2023-11-08 12:25:10
オリジナル
1361 人が閲覧しました

Nginx がリクエスト本文ベースのアクセス制御構成を実装する方法

Nginx がリクエスト本文に基づいてアクセス制御構成を実装する方法には、特定のコード例が必要です

ネットワーク アプリケーション開発では、アクセス制御の必要性が非常に一般的であり、Nginx は柔軟かつ強力なアクセス制御機能も備えた高性能Webサーバーおよびリバースプロキシサーバーです。 Nginx は、IP アドレス、ドメイン名、URL などによるアクセス制御に加えて、リクエストボディに基づいたアクセス制御構成もサポートしています。つまり、HTTP リクエストの内容を判断してアクセス制御できます。

Nginx でリクエストボディベースのアクセス制御設定を実装する方法を詳しく紹介します。

1. Nginx のインストール

まず、Nginx サーバーをインストールする必要があります。次のコマンドを使用して Nginx をインストールできます:

$ sudo apt-get update
$ sudo apt-get install nginx
ログイン後にコピー

インストールが完了したら、次のコマンドを使用して Nginx が正常にインストールされているかどうかを確認できます:

$ nginx -v
ログイン後にコピー

2. Nginx

を設定します。

Nginx での設定 ファイルでは、location ディレクティブを使用して照合する URL を指定でき、if ディレクティブを使用してリクエスト本文に基づいてアクセス制御を実装できます。 。

Nginx 構成ファイル (通常は /etc/nginx/nginx.conf) を開き、次の構成を追加します。

http {
    server {
        listen 80;
        server_name example.com;

        location /api {
            if ($request_body ~* "blacklist") {
                return 403;
            }

            # 其他配置...
        }
    }
}
ログイン後にコピー

上記の構成では、## を渡します。 #location ディレクティブは、/api で始まる URL と一致し、if ディレクティブを使用してリクエスト本文に「ブラックリスト」文字列が含まれているかどうかを判断します。この文字列が含まれている場合は、403 Forbidden ステータス コードが返されます。それ以外の場合は、他の設定が続行されます。

3. Nginx を再起動します

上記の構成を完了したら、構成を有効にするために Nginx サーバーを再起動する必要があります:

$ sudo systemctl restart nginx
ログイン後にコピー

4. 構成を確認します

これで、curl コマンドを使用して HTTP リクエストを送信し、構成を確認できるようになります。 POST リクエストを

http://example.com/api に送信し、リクエスト本文に「blacklist」文字列が含まれているとします。次のコマンドを実行できます:

$ curl -X POST -d "this is blacklist data" http://example.com/api
ログイン後にコピー

At this時間が経過すると、アクセスが拒否されたことを示す 403 Forbidden 応答が返されます。

リクエスト本文に「blacklist」文字列が含まれていない場合は、次のコマンドを実行できます。

$ curl -X POST -d "this is normal data" http://example.com/api
ログイン後にコピー
この時点では、通常の応答が得られます。

上記の操作により、リクエストボディに基づいたアクセス制御設定を実装することができました。

要約すると、この記事では、Nginx でリクエスト本文ベースのアクセス制御構成を実装する方法を紹介します。設定ファイルで

location および if ディレクティブを使用することで、アクセス制御のための HTTP リクエストの内容を柔軟に判断し、実際のニーズに応じて設定できます。この記事がお役に立てば幸いです。

以上がNginx がリクエスト本文ベースのアクセス制御構成を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート