ネットワーク開発の急速な進歩に伴い、導入されるアプリケーションやサービスの数は増加しています。一部のシナリオでは、リクエストを特定のサーバーまたはアプリケーションにルーティングする必要があります。 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 サイトの他の関連記事を参照してください。

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

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

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

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

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

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

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

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


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

WebStorm Mac版
便利なJavaScript開発ツール

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

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

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ホットトピック









