検索
ホームページ運用・保守NginxNginx リバース プロキシのキーワードとブラックリストに基づく ACL 設定

ネットワーク開発の急速な進歩に伴い、導入されるアプリケーションやサービスの数は増加しています。一部のシナリオでは、リクエストを特定のサーバーまたはアプリケーションにルーティングする必要があります。 Nginx は高性能 Web サーバーであり、これらの問題を解決できる一般的に使用されるリバース プロキシ方式です。 Nginx リバース プロキシによって提供される ACL モジュールに基づいて、管理者はリクエスト ルーティング、アクセス制御、その他のネットワーク セキュリティの問題を柔軟に制御および管理できます。

リバース プロキシでは、クライアントからリバース プロキシ サーバーにリクエストが送信され、プロキシ サーバーはクライアントに代わってバックエンド サーバーにリクエストを送信し、返された結果をクライアントに返します。たとえば、複数の言語とテクノロジー スタックを備えた最新の Web アプリケーションでは、Nginx リバース プロキシを使用して、同じドメイン名を介してさまざまなリクエストをさまざまなバックエンド サービスにルーティングできます。

この記事では、キーワード ベースとブラックリスト ベースの ACL を構成して、Nginx リバース プロキシのより詳細なルーティング ポリシーとセキュリティ制御を実装する方法を学びます。

キーワード ACL

キーワード ACL は、リクエスト URL 内のキーワードを照合することによってリクエスト ルーティングを実装する方法です。たとえば、現在のアプリケーションでは、リクエストされた URL に「/app1/」が含まれている場合、Nginx リバース プロキシがリクエストをバックエンド アプリケーション 1 にルーティングするようにします。 URL に「/app2/」が含まれている場合、リクエストはバックエンド アプリケーション 2 にルーティングされます。

この機能を実装するには、Nginx 構成ファイルでキーワード ACL を構成する必要があります。設定方法は次のとおりです。

http {
    ...
    # 关键词acl
    map $request_uri $app_name {
        ~* "/app1/" app1;
        ~* "/app2/" app2;
        default "";
    }
}

この設定では、$request_uri は、リクエストされた URL を表す Nginx 組み込み変数です。この変数の値は、事前定義されたキーワード正規表現と一致するマップ ディレクティブに渡されます。一致が成功した場合は、アプリケーションの名前が $app_name 変数に保存されます。それ以外の場合は、デフォルト値が使用されます。

次に、プロキシのターゲットとして上で定義した $app_name 変数をプロキシ ディレクティブのプロキシ URL オプションに渡すことができます:

server {
    ...
    location / {
        ...
        # 配置关键词代理
        proxy_pass http://$app_name.backend.com;
    }
}

この設定では、キーワード ACL が要求されます。 from 要求されたアプリケーションの名前が URL 内で照合され、クライアントの要求はプロキシ命令を通じて対応するバックエンド アプリケーションにルーティングされます。

ブラックリスト ベースの ACL

ブラックリスト ACL は、特定の IP またはリクエスト URL へのアクセスをブロックするために使用される方法です。このアプローチは、状況によっては非常に役立ちます。たとえば、悪意のある攻撃が発生した場合、管理者は Nginx リバース プロキシにブラックリスト ACL を構成して、IP アドレスのグループへのアクセスを拒否できます。ブラックリスト ACL を使用して、特定の一般的な攻撃 URL を拒否することもできます。

ブラックリスト ベースの ACL を設定する方法は次のとおりです:

http {
    ...
    # 黑名单acl
    geo $blocked_ip {
        default 0;
        include /path/to/blacklists/ip.txt;
    }
}

この設定では、geo ディレクティブは、ブロックされた IP アドレスのリストを保存するために使用される $blocked_ip という名前のメモリ変数を定義します。この例では、外部 IP アドレス ブラックリスト ファイルが使用されます。ファイルの形式は次のとおりです。

10.2.1.10 1;
192.168.0.0/24 1;
202.102.85.154 1;

ファイルの各行には、CIDR 形式の IP アドレスまたはネットワーク セグメントが含まれており、その後にこの IP アドレスまたは CIDR ネットワーク セグメントがブロックされていることを示す数字 1 が続きます。

次に、このブラックリスト ACL を Nginx 構成で使用できます:

server {
    ...
    location / {
        ...
        # 配置黑名单ACL
        if ($blocked_ip) {
            return 403;
        }
        proxy_pass http://backend.com;
    }
}

この構成では、要求された IP アドレスがブラックリストにあるかどうかを判断するために if ディレクティブが使用されます。禁止された応答は直接返されます。それ以外の場合、リクエストはバックエンド プロキシ サーバーにルーティングされます。

要約すると、Nginx リバース プロキシは優れた ACL モジュールを提供し、他の機能モジュールと併用して非常に柔軟なリクエスト ルーティングとアクセス制御を実現できます。リバース プロキシを使用する場合、これらの方法を理解し、使いこなすことで、さまざまな状況に適応し、ネットワーク サービスの品質とセキュリティを向上させることができます。

以上がNginx リバース プロキシのキーワードとブラックリストに基づく ACL 設定の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Nginx vs. Apache:アーキテクチャを見てくださいNginx vs. Apache:アーキテクチャを見てくださいApr 28, 2025 am 12:13 AM

NginxとApacheの主なアーキテクチャの違いは、Nginxがイベント駆動型の非同期非ブロッキングモデルを採用し、Apacheはプロセスまたはスレッドモデルを使用することです。 1)nginxは、静的な内容と逆プロキシに適したイベントループとI/O多重化メカニズムを介して、高電流接続を効率的に処理します。 2)Apacheは、非常に安定しているがリソース消費量が高いマルチプロセスまたはマルチスレッドモデルを採用しており、リッチモジュールの拡張が必要な​​シナリオに適しています。

Nginx vs. Apache:長所と短所を調べますNginx vs. Apache:長所と短所を調べますApr 27, 2025 am 12:05 AM

Nginxは、高い同時コンテンツと静的コンテンツの処理に適していますが、Apacheは複雑な構成と動的コンテンツに適しています。 1。NGINXは、交通量の多いシナリオに適した同時接続を効率的に処理しますが、動的コンテンツを処理するときは追加の構成が必要です。 2。Apacheは、複雑なニーズに適したリッチモジュールと柔軟な構成を提供しますが、並行性のパフォーマンスが低いです。

NginxとApache:重要な違​​いを理解するNginxとApache:重要な違​​いを理解するApr 26, 2025 am 12:01 AM

NginxとApacheにはそれぞれ独自の利点と欠点があり、選択は特定のニーズに基づいている必要があります。 1.Nginxは、非同期の非ブロッキングアーキテクチャのため、高い並行性シナリオに適しています。 2。Apacheは、モジュラー設計のため、複雑な構成を必要とする低変動シナリオに適しています。

Nginxユニット:主要な機能と機能Nginxユニット:主要な機能と機能Apr 25, 2025 am 12:17 AM

Nginxunitは、複数のプログラミング言語をサポートし、動的構成、ゼロダウンタイム更新、組み込みのロードバランシングなどの機能を提供するオープンソースアプリケーションサーバーです。 1。動的構成:再起動せずに構成を変更できます。 2。多言語サポート:Python、Go、Java、PHPなどと互換性があります。 4。ビルトインロードバランシング:リクエストは、複数のアプリケーションインスタンスに配布できます。

Nginxユニットvs他のアプリケーションサーバーNginxユニットvs他のアプリケーションサーバーApr 24, 2025 am 12:14 AM

nginxunitは、多言語プロジェクトや動的な構成要件に適した、apachetomcat、gunicorn、node.jsビルトインHTTPサーバーよりも優れています。 1)複数のプログラミング言語をサポートします。2)動的な構成リロード、3)高いスケーラビリティと信頼性を必要とするプロジェクトに適した組み込みの負荷分散機能を提供します。

Nginxユニット:アーキテクチャとその仕組みNginxユニット:アーキテクチャとその仕組みApr 23, 2025 am 12:18 AM

Nginxunitは、モジュラーアーキテクチャと動的な再構成機能により、アプリケーションのパフォーマンスと管理性を向上させます。 1)モジュラー設計には、マスタープロセス、ルーター、アプリケーションプロセスが含まれ、効率的な管理と拡張をサポートします。 2)動的再構成により、CI/CD環境に適した、実行時に構成をシームレスに更新できます。 3)多言語サポートは、言語ランタイムの動的なロードを通じて実装され、開発の柔軟性が向上します。 4)イベント駆動型モデルと非同期I/Oによって高性能が達成され、高い並行性の下でも効率的なままです。 5)申請プロセスを分離し、アプリケーション間の相互の影響を減らすことにより、セキュリティが改善されます。

Nginxユニットの使用:アプリケーションの展開と管理Nginxユニットの使用:アプリケーションの展開と管理Apr 22, 2025 am 12:06 AM

nginxunitを使用して、アプリケーションを複数の言語で展開および管理できます。 1)nginxunitをインストールします。 2)PythonやPHPなどのさまざまなタイプのアプリケーションを実行するように構成します。 3)アプリケーション管理に動的構成関数を使用します。これらの手順を通じて、アプリケーションを効率的に展開および管理し、プロジェクトの効率を向上させることができます。

Nginx vs. Apache:Webサーバーの比較分析Nginx vs. Apache:Webサーバーの比較分析Apr 21, 2025 am 12:08 AM

NGINXは、高い並行接続の処理に適していますが、Apacheは複雑な構成とモジュール拡張が必要な​​シナリオにより適しています。 1.Nginxは、高性能と低リソース消費で知られており、高い並行性に適しています。 2. Apacheは、その安定性とリッチモジュール拡張機能で知られています。これは、複雑な構成ニーズに適しています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター