Nginx est un serveur Web open source hautes performances et un serveur proxy inverse largement utilisé dans les environnements de production réels. Sa fonction de proxy inverse peut nous aider à mettre en œuvre des fonctions telles que le contrôle du trafic, l'équilibrage de charge et la protection de la sécurité. Cependant, d'autres facteurs doivent être pris en compte lors de l'exécution d'un proxy inverse, tels que l'adresse IP du client et les informations de localisation géographique, afin que nous puissions mieux contrôler l'accès et assurer la sécurité du site Web.
Par conséquent, cet article présentera comment configurer l'ACL en fonction de l'adresse IP et de l'emplacement géographique dans le proxy inverse Nginx pour obtenir un contrôle d'accès plus raffiné.
1. Qu'est-ce que l'ACL
Avant d'introduire la méthode de configuration spécifique, nous devons d'abord comprendre ce qu'est l'ACL. ACL (Access Control List) est une liste de contrôle d'accès, qui est une politique utilisée pour contrôler le flux de données sur les périphériques réseau. Grâce à l'ACL, le trafic peut être classé et restreint en fonction de différentes conditions pour atteindre des objectifs de sécurité du réseau et de contrôle du trafic.
Dans Nginx, nous pouvons configurer l'ACL en fonction de l'adresse IP, de l'emplacement géographique et d'autres conditions pour contrôler l'accès. Par conséquent, lors de l'exécution d'un proxy inverse, nous pouvons configurer l'ACL correspondante en fonction de l'adresse IP et des informations de localisation du client pour mieux contrôler les demandes du client.
2. Configuration ACL basée sur l'adresse IP
L'adresse IP est la Adresse de protocole Internet Abréviation d'adresse de protocole Internet. En tant qu'identifiant identifiant un ordinateur unique sur Internet, il se compose de 32 bits binaires, généralement représentés par 4 nombres décimaux, chacun ayant une valeur comprise entre 0 et 255, séparés par un point (par exemple, 127,0 .0.1).
Les adresses IP peuvent être classées en fonction de facteurs tels que leur champ d'utilisation, leurs règles d'attribution et leur format d'adresse. Les méthodes de classification courantes sont les suivantes :
(1) Selon le domaine d'utilisation, elle est divisée en adresse IP publique et adresse IP privée. L'adresse IP publique est utilisée pour se connecter à Internet et l'adresse IP privée est utilisée. L'adresse IP est utilisée pour la communication intranet.
(2) Selon les règles d'attribution, elle est divisée en adresse IP statique et adresse IP dynamique. Une adresse IP statique est une adresse IP fixe définie manuellement par l'administrateur réseau et généralement utilisée pour les appareils à emplacement fixe tels que les serveurs. Une adresse IP dynamique est une adresse IP attribuée dynamiquement par un fournisseur de services réseau et qui change au fil du temps.
(3) Selon le format d'adresse, elle est divisée en adresse IPv4 et adresse IPv6. L'adresse IPv4 est un format d'adresse 32 bits actuellement largement utilisé. L'adresse IPv6 est une nouvelle génération d'adresse IP qui utilise le format d'adresse 128 bits et est utilisée pour remplacer l'adresse IPv4.
Dans Nginx, nous pouvons effectuer une configuration ACL de proxy inverse en fonction de l'adresse IP du client. La configuration spécifique est la suivante :
(1) Restriction d'adresse IP unique
Si vous ne devez restreindre l'accès qu'à une seule adresse IP, vous pouvez utiliser la configuration suivante :
location / { #allow access from IP address 192.168.1.100 allow 192.168.1.100; deny all; }
location / { #allow access from IP address 192.168.1.100 and 192.168.1.101 allow 192.168.1.100; allow 192.168.1.101; deny all; }
location / { # allow access from IP address segments 192.168.1.0/24 allow 192.168.1.0/24; deny all; }
yum -y install automake autoconf libtool gcc make pcre-devel zlib-devel
wget https://github.com/maxmind/geoip-api-c/releases/download/v1.9.2/GeoIP-1.9.2.tar.gz
tar xzf GeoIP-1.9.2.tar.gz cd GeoIP-1.9.2 ./configure make && make check && make install
mkdir /usr/share/GeoIP cd /usr/share/GeoIP/ wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz tar -zxvf GeoLite2-City.tar.gz tar -zxvf GeoLite2-Country.tar.gz
# set geoip database path geoip_country /usr/share/GeoIP/GeoLite2-Country.mmdb; geoip_city /usr/share/GeoIP/GeoLite2-City.mmdb; # enable nginx api http { geoip2 /usr/share/GeoIP/GeoLite2-City.mmdb { $geoip2_data_city_name city names en; $geoip2_data_country_iso_code country iso_code; $geoip2_data_latitude latitude; $geoip2_data_longitude longitude; } }
location / { # allow access from China if ($geoip2_data_country_iso_code != CN) { return 403; } }
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!