Maison  >  Article  >  Opération et maintenance  >  Configuration ACL basée sur l'empreinte digitale de l'appareil et du navigateur dans le proxy inverse Nginx

Configuration ACL basée sur l'empreinte digitale de l'appareil et du navigateur dans le proxy inverse Nginx

PHPz
PHPzoriginal
2023-06-10 13:13:401094parcourir

Avec la popularité de l'Internet mobile et des appareils multiterminaux, les méthodes d'accès aux sites Web et les types d'appareils deviennent de plus en plus diversifiés. Afin de garantir la stabilité et la sécurité du site Web, le serveur du site Web doit effectuer un proxy inverse et doit également restreindre différents appareils et types de navigateurs. Cela nécessite l'utilisation d'une configuration ACL basée sur les empreintes digitales de l'appareil et du navigateur dans le proxy inverse Nginx. .

Qu'est-ce que le proxy inverse Nginx ?

Le proxy inverse Nginx est une méthode proxy dans laquelle le serveur agit en tant que client pour accéder à d'autres ressources du serveur. Pour faire simple, un serveur proxy est ajouté entre le client et le serveur. Le client demande des ressources au serveur proxy, et le serveur proxy demande des ressources au serveur réel, puis renvoie les résultats de la demande au client. Cette méthode peut réduire efficacement la pression sur le serveur et améliorer les performances et la fiabilité du site Web.

Configuration ACL dans le proxy inverse Nginx

ACL (Access Control List, Access Control List) est une fonction du proxy inverse Nginx, qui est utilisée pour effectuer des opérations basées sur l'adresse IP, la méthode de demande, l'URL et d'autres conditions demandées par le client. Filtrer et restreindre. Dans ACL, nous pouvons également restreindre en fonction du type d'appareil et du type de navigateur.

En raison des différentes méthodes de rendu et spécifications des différents appareils et types de navigateurs, nous pouvons apporter différentes réponses en fonction de ces caractéristiques, par exemple en fournissant différentes structures de page, styles ou ressources. Dans le même temps, vous pouvez également restreindre les demandes de certains appareils ou navigateurs via la configuration ACL pour améliorer la sécurité et la stabilité du site Web.

Configuration ACL basée sur les empreintes digitales des appareils et des navigateurs

Il existe désormais tellement de types d'appareils et de navigateurs qu'il est évidemment irréaliste de les configurer manuellement un par un. Mais heureusement, le proxy inverse Nginx fournit un module tiers DeviceAtlas, grâce auquel nous pouvons identifier automatiquement l'appareil et le type de navigateur.

Installez le module Deviceatlas

Prenons CentOS comme exemple, installez d'abord les dépendances nécessaires :

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

Puis téléchargez le module Deviceatlas, décompressez et exécutez l'installation :

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

Après les étapes ci-dessus, nous pouvons utiliser le module deviceatlas dans Nginx.

Configurer le proxy inverse Nginx

Dans le fichier de configuration Nginx, ajoutez la configuration suivante :

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;
    }
}

}

Analysez la configuration ci-dessus :

Utilisez d'abord le module deviceatlas pour charger le fichier d'informations sur l'appareil ; Utilisez la commande map pour Les appareils sont classés comme « mobiles » et « non mobiles ». Les appareils non identifiés sont considérés comme non mobiles. Une fois les appareils classés, nous pouvons facilement faire différentes réponses selon les différents types d'appareils. commande vers Le nom de marque de l'appareil est mappé au nom de domaine du serveur back-end correspondant ;

Sur le serveur proxy inverse Nginx, utilisez la directive d'emplacement pour faire correspondre l'URL de la demande. Si la demande actuelle provient d'un appareil mobile, la demande de proxy. est autorisé ; si la demande actuelle provient d'un appareil inconnu ou non. Pour les appareils mobiles, les demandes de proxy ne sont pas autorisées

Lors de la demande d'une URL spécifiée, si la demande provient d'un appareil mobile et que la marque est Huawei, Samsung ou ; Apple, la demande sera transmise au serveur correspondant ; sinon, si la demande provient d'un appareil inconnu ou non. Si l'appareil mobile ou la marque ne correspond à aucun des éléments, la demande sera transmise au serveur par défaut.

Résumé

La configuration ACL basée sur les empreintes digitales de l'appareil et du navigateur peut aider le serveur proxy inverse Nginx à filtrer et à répondre à divers appareils et méthodes d'accès. Le serveur proxy inverse Nginx peut identifier automatiquement la marque, le modèle et le type de navigateur de l'appareil à l'aide du module Deviceatlas, et effectuer les configurations ACL correspondantes en fonction de conditions spécifiques, améliorant ainsi les performances, la sécurité et la stabilité du site Web.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn