Nginx リバースプロキシのリクエストメソッドとリクエストヘッダーに基づく ACL 設定
Nginx は軽量で効率的な Web サーバーであり、最新の Web アプリケーションの構築で使用されることが増えています。リバース プロキシ機能により、Nginx をロード バランシング、キャッシュ、オープン ソース API ゲートウェイなどの目的に使用できます。この記事では、リクエスト メソッドとリクエスト ヘッダーに基づいた ACL (アクセス コントロール リスト) の設定に焦点を当てます。
ACL はアクセス制御に使用されるメカニズムであり、Nginx で広く使用されています。 ACL を通じて、Nginx はリクエストをフィルタリングして検証し、ターゲット サーバーに配布できます。 ACL メカニズムは主に、変数、演算子、値の 3 つの部分で構成されます。
変数は、リクエスト ヘッダー、リクエスト メソッド、リクエスト パラメータなど、リクエスト内の一部の情報です。 Nginx はこれらの変数の値をチェックして、リクエストをサーバーに送信するかどうかを決定できます。値は、変数が比較されるデータを指します。演算子は、変数と値を比較する方法を指定します。
Nginx は、リクエスト メソッドとリクエスト ヘッダーに基づいた ACL 構成をサポートしています。これらの構成は、次のような状況で使用できます。
- GET、POST、DELETE などのリクエスト メソッドのタイプに基づいてリクエストをフィルタリングしたい場合。
- Authorization、Content-Type などのリクエスト ヘッダーに基づいてリクエストをフィルタリングしたいと考えています。これは、クライアントの承認を確認し、アプリケーションに必要なセキュリティを維持するために API ゲートウェイで一般的に使用されます。
リクエスト メソッドに基づいた ACL の設定
リクエスト メソッドに基づいて ACL を設定するのは非常に簡単です。変数 $request_method を使用し、この変数の値をチェックする演算子を定義してから、許可されるリクエスト メソッドのリストを指定する必要があります。以下に例を示します。
location /api { if ($request_method !~ ^(GET|POST|PUT)$ ) { return 405; } proxy_pass http://localhost:8080; }
この設定は、リクエスト メソッドが GET、POST、または PUT ではない場合、HTTP ステータス 405 (「メソッドが許可されていません」) が返されることを意味します。ここで GET、POST、または PUT 以外のリクエスト メソッドが一致した場合、Nginx はそれらをプロキシ サーバーに送信しません。
リクエスト ヘッダーに基づく ACL 設定
リクエスト ヘッダーに基づく ACL 設定は、リクエスト メソッドに基づく設定と似ています。変数 $http_ とリクエスト ヘッダーの名前を使用して、リクエスト内のヘッダー情報を取得できます。その後、演算子を使用して、リクエストベースのアプローチと同様の方法でヘッダーの値を確認できます。例:
location /api { if ($http_authorization !~* "Bearer [a-zA-Z0-9]+" ) { return 401; } proxy_pass http://localhost:8080; }
上記の構成では、リクエストヘッダーの Authorization に Bearer で始まる認可タグが含まれていない場合、HTTP ステータス 401 (「Unauthorized」) が返されます。したがって、Nginx は、正しい認証ヘッダーを除いて、プロキシ サーバーにリクエストを送信しません。
概要
Nginx の ACL 機能は、リクエスト関連の多くのロジックを実行するために使用できます。リクエスト メソッドとリクエスト ヘッダーに基づく ACL 構成は、特定のシナリオでアクセス制御を実装する効果的な方法です。さらに、ログ記録やレート制限などの他の Nginx 機能と組み合わせて、Web アプリケーションのセキュリティとパフォーマンスを強化できます。
以上がNginx リバースプロキシのリクエストメソッドとリクエストヘッダーに基づく ACL 設定の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









クラウドサーバーでnginxドメイン名を構成する方法:クラウドサーバーのパブリックIPアドレスを指すレコードを作成します。 NGINX構成ファイルに仮想ホストブロックを追加し、リスニングポート、ドメイン名、およびWebサイトルートディレクトリを指定します。 nginxを再起動して変更を適用します。ドメイン名のテスト構成にアクセスします。その他のメモ:SSL証明書をインストールしてHTTPSを有効にし、ファイアウォールがポート80トラフィックを許可し、DNS解像度が有効になることを確認します。

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

nginxバージョンを照会できるメソッドは次のとおりです。nginx-vコマンドを使用します。 nginx.confファイルでバージョンディレクティブを表示します。 nginxエラーページを開き、ページタイトルを表示します。

Docker画像を作成する手順:ビルド命令を含むDockerFileを書きます。 Docker Buildコマンドを使用して、ターミナルで画像を作成します。画像にタグを付け、Dockerタグコマンドを使用して名前とタグを割り当てます。

NGINXサーバーを起動するには、異なるオペレーティングシステムに従って異なる手順が必要です。Linux/UNIXシステム:NGINXパッケージをインストールします(たとえば、APT-GetまたはYumを使用)。 SystemCtlを使用して、NGINXサービスを開始します(たとえば、Sudo SystemCtl Start NGinx)。 Windowsシステム:Windowsバイナリファイルをダウンロードしてインストールします。 nginx.exe実行可能ファイルを使用してnginxを開始します(たとえば、nginx.exe -c conf \ nginx.conf)。どのオペレーティングシステムを使用しても、サーバーIPにアクセスできます

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

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

nginxをApacheを実行するには、次のことが必要です。1。nginxとapacheをインストールします。 2。nginxエージェントを構成します。 3。nginxとapacheを起動します。 4.構成をテストして、ドメイン名にアクセスした後にApacheコンテンツを確認できることを確認します。さらに、ポート番号マッチング、仮想ホスト構成、SSL/TLS設定など、他の問題に注意を払う必要があります。
