ホームページ  >  記事  >  運用・保守  >  Nginx リバース プロキシのデバイスとブラウザのフィンガープリントに基づく ACL 構成

Nginx リバース プロキシのデバイスとブラウザのフィンガープリントに基づく ACL 構成

PHPz
PHPzオリジナル
2023-06-10 13:13:401094ブラウズ

モバイルインターネットや多端末の普及により、Webサイトへのアクセス方法やデバイスの種類はますます豊富になってきています。 Web サイトの安定性とセキュリティを確保するために、Web サイト サーバーはリバース プロキシを実行する必要があり、さまざまなデバイスとブラウザの種類を制限する必要もあります。これには、Nginx リバース プロキシでデバイスとブラウザのフィンガープリントに基づく ACL 設定を使用する必要があります。 。

Nginx リバース プロキシとは何ですか?

Nginx リバース プロキシは、サーバーがクライアントとして機能して他のサーバー リソースにアクセスするプロキシ方式です。簡単に説明すると、クライアントとサーバーの間にプロキシサーバーを追加し、クライアントはプロキシサーバーにリソースを要求し、プロキシサーバーは実サーバーにリソースを要求し、要求結果をクライアントに返します。この方法により、サーバーへの負荷が効果的に軽減され、Web サイトのパフォーマンスと信頼性が向上します。

Nginx リバース プロキシの ACL 設定

ACL (アクセス コントロール リスト、アクセス コントロール リスト) は、クライアントによって要求された IP アドレスを決定するために使用される Nginx リバース プロキシの機能です。メソッド、URL、その他の条件でフィルタリングおよび制限します。 ACL では、デバイスの種類とブラウザの種類に基づいて制限することもできます。

デバイスやブラウザの種類が異なればレンダリング方法や仕様も異なるため、異なるページ構造、スタイル、リソースを提供するなど、これらの特性に基づいて異なる対応を行うことができます。同時に、ACL 設定を通じて特定のデバイスまたはブラウザからのリクエストを制限し、Web サイトのセキュリティと安定性を向上させることもできます。

デバイスとブラウザのフィンガープリントに基づく ACL 構成

現在、デバイスとブラウザの種類は非常に多く、それらを 1 つずつ手動で構成するのは明らかに非現実的です。しかし幸いなことに、Nginx リバース プロキシはサードパーティ モジュールの deviceatlas を提供しており、これを通じてデバイスとブラウザの種類を自動的に識別できます。

deviceatlas モジュールをインストールします

CentOS を例として、最初に必要な依存関係をインストールします。

sudo yum install gcc-c pcre-devel zlib-devel

次に、deviceatlas モジュールをダウンロードし、解凍してインストールします。

sudo wget -O ~/deviceatlas.tar.gz https://github.com/devicedetection/device-nginx/archive/master.tar.gz
sudo tar zxvf ~/deviceatlas.tar.gz -C ~/
cd ~/device-nginx-master
sudo ./configure --add-module=$PWD
sudo make && sudo make install

上記の手順を完了すると、Nginx で deviceatlas モジュールを使用できるようになります。

Nginx リバース プロキシの構成

Nginx 構成ファイルに次の構成を追加します:

http {

deviceatlas /usr/share/devicedata/51Degrees.dat;

map $device_is_mobile $acl {
    ""               block_ua;
    "true"           allow;
    "false"          block_ua;
}

map $device_brand_name $brand_map {
     "~Huawei"       "huawei.com";
     "~Samsung"      "samsung.com";
     "~Apple"        "apple.com";
     default         "default.com"
}

server {
    listen       80;
    server_name  server.com;

    location / {
        if ($acl = "allow") {
            proxy_pass http://backend;
        }
        if ($acl = "block_ua") {
            return 403;
        }
    }

    location /brand {
        proxy_pass http://$brand_map;
    }
}

}

Analysis上記の設定:

最初に deviceatlas モジュールを使用してデバイス情報ファイルをロードします;

map コマンドを使用してデバイスを「モバイル」と「非モバイル」に分類します。デバイスが分類された後は、さまざまなデバイス タイプに応じて異なる応答を簡単に行うことができます;

別のマップ コマンドを使用して、デバイスのブランド名を対応するバックエンド サーバーのドメイン名にマップします;

Nginx リバース プロキシ サーバーでは、リクエスト URL と一致するロケーション ディレクティブを使用します。現在のリクエストがモバイル デバイスからのものである場合、プロキシ リクエストは許可されます。現在のリクエストが不明なデバイスまたは非デバイスからのものである場合は、プロキシ リクエストが許可されます。 -モバイル デバイス、プロキシ リクエストは許可されていません;

指定された URL をリクエストするとき、リクエストがモバイル デバイスから送信され、ブランドが Huawei、Samsung、または Apple の場合、リクエストは対応する URL にプロキシされます。それ以外の場合、リクエストが不明なデバイスまたは非モバイル デバイスから送信された場合、またはブランドがアイテムのいずれにも一致しない場合、リクエストはデフォルト サーバーにプロキシされます。

概要

デバイスとブラウザのフィンガープリントに基づく ACL 構成は、Nginx リバース プロキシ サーバーのフィルタリングと、多様なアクセス デバイスと多様なアクセス方法への対応に役立ちます。 Nginx リバース プロキシ サーバーは、deviceatlas モジュールを使用してデバイスのブランド、モデル、ブラウザの種類を自動的に識別し、特定の条件に基づいて対応する ACL 構成を作成することで、Web サイトのパフォーマンス、セキュリティ、安定性を向上させることができます。

以上がNginx リバース プロキシのデバイスとブラウザのフィンガープリントに基づく ACL 構成の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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