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

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

Jun 10, 2023 pm 01:13 PM
nginx リバースプロキシ ACL設定

モバイルインターネットや多端末の普及により、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 までご連絡ください。

ホット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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

nginxでクラウドサーバードメイン名を構成する方法 nginxでクラウドサーバードメイン名を構成する方法 Apr 14, 2025 pm 12:18 PM

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

Dockerコンテナの名前を確認する方法 Dockerコンテナの名前を確認する方法 Apr 15, 2025 pm 12:21 PM

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照会できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

Nginxが開始されるかどうかを確認する方法 Nginxが開始されるかどうかを確認する方法 Apr 14, 2025 pm 01:03 PM

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

Windowsでnginxを構成する方法 Windowsでnginxを構成する方法 Apr 14, 2025 pm 12:57 PM

Windowsでnginxを構成する方法は? nginxをインストールし、仮想ホスト構成を作成します。メイン構成ファイルを変更し、仮想ホスト構成を含めます。 nginxを起動またはリロードします。構成をテストし、Webサイトを表示します。 SSLを選択的に有効にし、SSL証明書を構成します。ファイアウォールを選択的に設定して、ポート80および443のトラフィックを許可します。

Nginxバージョンを確認する方法 Nginxバージョンを確認する方法 Apr 14, 2025 am 11:57 AM

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

nginxサーバーを開始する方法 nginxサーバーを開始する方法 Apr 14, 2025 pm 12:27 PM

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にアクセスできます

Dockerによってコンテナを起動する方法 Dockerによってコンテナを起動する方法 Apr 15, 2025 pm 12:27 PM

Docker Containerの起動手順:コンテナ画像を引く:「Docker Pull [Mirror Name]」を実行します。コンテナの作成:「docker create [options] [mirror name] [コマンドとパラメーター]」を使用します。コンテナを起動します:「docker start [container name or id]」を実行します。コンテナのステータスを確認してください:コンテナが「Docker PS」で実行されていることを確認します。

Docker用のコンテナを作成する方法 Docker用のコンテナを作成する方法 Apr 15, 2025 pm 12:18 PM

Dockerでコンテナを作成します。1。画像を引く:Docker Pull [ミラー名]2。コンテナを作成:Docker Run [Options] [Mirror Name] [コマンド]3。コンテナを起動:Docker Start [Container Name]

See all articles