Table des matières
1. Configuration de l'accès restreint IP aux listes noire/blanche
1. La première méthode : autoriser, refuser
2 : La deuxième méthode, ngx_http_geo_module
3. ngx_http_geo_module équilibrage de charge (extension)
1 : Installez le module ngx_http_geoip_module
nginx ne construit pas ce module par défaut, il doit être activé à l'aide du paramètre de configuration --with-http_geoip_module.
MaxMind fournit une base de données géographique IP gratuite. La mauvaise nouvelle est que MaxMind a officiellement cessé de prendre en charge la base de données IP au format DAT.
Ici, les paramètres de base régionaux et nationaux sont terminés.
Maison Opération et maintenance Nginx Comment les sites Web définissent-ils les restrictions IP sur liste noire/blanche et les restrictions d'accès IP par pays et ville via nginx ?

Comment les sites Web définissent-ils les restrictions IP sur liste noire/blanche et les restrictions d'accès IP par pays et ville via nginx ?

Jun 01, 2023 pm 05:27 PM
nginx ip

    1. Configuration de l'accès restreint IP aux listes noire/blanche

    nginx propose plusieurs façons de configurer les listes noire et blanche. Voici seulement deux méthodes couramment utilisées.

    1. La première méthode : autoriser, refuser

    deny et autoriser les instructions appartiennent à ngx_http_access_module. nginx charge ce module par défaut, il peut donc être utilisé directement.

    Cette méthode est la plus simple et la plus directe. Configurez un pare-feu similaire à iptable. Comment utiliser :

    Ajoutez directement dans le fichier de configuration :

    #白名单设置,allow后面为可访问IP 
    location / {
         allow 123.13.123.12;
         allow 23.53.32.1/100;
         deny  all;
    }
    
    #黑名单设置,deny后面接限制的IP,为什么不加allow all? 因为这个默认是开启的 
    location / {
         deny 123.13.123.12;
    }
    
    #白名单,特定目录访问限制
    location /tree/list {
         allow 123.13.123.12;
         deny  all;
    }
    Copier après la connexion

    Ou configurez la liste blanche en lisant le fichier IP

    location /{
        include /home/whitelist.conf;
        #默认位置路径为/etc/nginx/ 下,
        #如直接写include whitelist.conf,则只需要在/etc/nginx目录下创建whitelist.conf
        deny all;
    }
    Copier après la connexion

    Créez whitelist.conf dans le répertoire /home/ et écrivez les informations. qui doit être ajouté à l'adresse IP de la liste blanche, après l'avoir ajouté, affichez ce qui suit :

    cat /home/whitelist.conf
    
    #白名单IP
    allow 10.1.1.10;
    allow 10.1.1.11;
    Copier après la connexion

    Le paramétrage de la liste blanche est terminé et la méthode de paramétrage de la liste noire est la même.

    2 : La deuxième méthode, ngx_http_geo_module

    Par défaut, ce module est généralement ajouté à nginx, ngx_http_geo_module : Document officiel, les paramètres doivent être définis dans le module http.

    Ce module peut définir des restrictions IP et des restrictions de pays et de région. L'emplacement peut être à l'extérieur du module serveur.

    Exemple de syntaxe :

    Le fichier de configuration est ajouté directement

    geo $ip_list {
        default 0;
        #设置默认值为0
        192.168.1.0/24 1;
        10.1.0.0/16    1;
    }
    server {
        listen       8081;
        server_name  192.168.152.100;
        
        location / {
            root   /var/www/test;
    		index  index.html index.htm index.php;
    		if ( $ip_list = 0 ) {
    		#判断默认值,如果值为0,可访问,这时上面添加的IP为黑名单。
    		#白名单,将设置$ip_list = 1,这时上面添加的IP为白名单。
    		proxy_pass http://192.168.152.100:8081;
        }
    Copier après la connexion

    Vous pouvez également lire le fichier de configuration IP

    geo $ip_list {
        default 0;
        #设置默认值为0
        include ip_white.conf;
    }
    server {
        listen       8081;
        server_name  192.168.152.100;
        
        location / {
            root   /var/www/test;
    		index  index.html index.htm index.php;
    		if ( $ip_list = 0 ) {
    			return 403;
    			#限制的IP返回值为403,也可以设置为503,504其他值。
    			#建议设置503,504这样返回的页面不会暴露nginx相关信息,限制的IP看到的信息只显示服务器错误,无法判断真正原因。
        }
    Copier après la connexion

    Créez ip_list.conf dans le répertoire /etc/nginx Après avoir ajouté l'IP, affichez ce qui suit :

    cat /etc/nginx/ip_list.conf
    
    192.168.152.1 1;
    192.168.150.0/24 1;
    Copier après la connexion
    .

    Lors du réglage Une fois terminé, le fichier de liste IP ip_list.conf sera utilisé comme liste blanche. Si l'IP demandée n'est pas dans la liste, la page 403 sera renvoyée directement. La méthode de définition de la liste noire est la même.

    3. ngx_http_geo_module équilibrage de charge (extension)

    ngx_http_geo_module, le module peut également être utilisé pour l'équilibrage de charge. Par exemple, un cluster Web a des serveurs dans différentes régions et la charge du segment IP d'une certaine région est équilibrée pour les serveurs d'accès. une certaine région. Une manière similaire consiste à ajouter des valeurs personnalisées derrière l'adresse IP. Ces valeurs ne se limitent pas aux chiffres, mais peuvent également utiliser des lettres, telles que US, CN, etc.

    Exemple:

    If il y a trois serveurs: 122.11.11.11, 133.11.12.22, 144.11.11.33

    geo $country {
        default default;
        111.11.11.0/24   uk;
        #IP段定义值uk
        111.11.12.0/24   us;
        #IP段定义值us
        }
    upstream  uk.server {
        erver 122.11.11.11:9090;
        #定义值uk的IP直接访问此服务器
    } 
    
    upstream  us.server {
        server 133.11.12.22:9090;
        #定义值us的IP直接访问此服务器
    }
    
    upstream  default.server {
        server 144.11.11.33:9090;
        #默认的定义值default的IP直接访问此服务器
    }
     
    server {
        listen    9090;
        server_name 144.11.11.33;
    
        location / {
          root  /var/www/html/;
          index index.html index.htm;
         }
     }
    Copier après la connexion

    then dans le deuxième, le pays et la région IP d'accès à la restriction pour les deux services tiers tels que Cloudflare fournissent également options de configuration à activer La configuration des règles de pare-feu est plus pratique. Nous parlons ici de la façon de configurer nginx.

    1 : Installez le module ngx_http_geoip_module

    ngx_http_geoip_module : Document officiel, les paramètres doivent être définis dans le module http.

    nginx ne construit pas ce module par défaut, il doit être activé à l'aide du paramètre de configuration --with-http_geoip_module.

    Pour les systèmes Ubuntu, installez directement les composants nginx-extras, y compris presque tous les modules.

    sudo apt install nginx-extras
    Copier après la connexion

    Pour le système centos, installez le module.

    yum install nginx-module-geoip
    Copier après la connexion

    2. Téléchargez la base de données IP

    Ce module dépend de la base de données IP. Toutes les données sont lues dans cette base de données et la bibliothèque IP (format dat) doit être téléchargée.

    MaxMind fournit une base de données géographique IP gratuite. La mauvaise nouvelle est que MaxMind a officiellement cessé de prendre en charge la base de données IP au format DAT.

    Vous pouvez trouver des fichiers au format DAT à d'autres endroits, ou dans d'anciennes versions. Bien sûr, les données peuvent ne pas être les plus récentes et il y a quelques erreurs.

    Le téléchargement inclut les versions par pays et par ville d'Ipv4 et d'Ipv6.

    #下载国家IP库,解压并移动到nginx配置文件目录,
    sudo wget https://dl.miyuru.lk/geoip/maxmind/country/maxmind.dat.gz
    gunzip maxmind.dat.gz
    sudo mv maxmind.dat /etc/nginx/GeoCountry.dat
    
    sudo wget https://dl.miyuru.lk/geoip/maxmind/city/maxmind.dat.gz
    gunzip maxmind.dat.gz
    sudo mv maxmind.dat /etc/nginx/GeoCity.dat
    Copier après la connexion

    3. Configurez nginx

    Exemple :

    geoip_country /etc/nginx/GeoCountry.dat;
    geoip_city /etc/nginx/GeoCity.dat;
    
    server {
        listen  80;
        server_name 144.11.11.33;
    
        location / {
          root  /var/www/html/;
          index index.html index.htm;
          if ($geoip_country_code = CN) {
      			return 403;
     		#中国地区,拒绝访问。返回403页面
    		}
      	}
     }
    Copier après la connexion

    Ici, les paramètres de base régionaux et nationaux sont terminés.

    Autres paramètres Geoip :

    Paramètres liés au pays :

    $geoip_country_code #Code de pays anglais à deux caractères. Par exemple : CN, US

    $geoip_country_code3 #Indicatif de pays anglais à trois caractères. Tels que : CHN, USA
    $geoip_country_name #Le nom anglais complet du pays. Par exemple : Chine, États-Unis

    Paramètres liés à la ville :
    $geoip_city_country_code # est également un code de pays anglais à deux caractères.
    $geoip_city_country_code3 #Identique à ci-dessus
    $geoip_city_country_name #Identique à ci-dessus.
    $geoip_region #Il a été testé comme étant un nombre à deux chiffres, tel que 02 pour Hangzhou et 23 pour Shanghai. Cependant, aucune information pertinente n'a été trouvée. J'espère que les amis qui sont au courant pourront laisser un message.
    $geoip_city #Le nom anglais de la ville. Par exemple : Hangzhou
    $geoip_postal_code #Le code postal de la ville. Après tests, ce champ est vide en Chine
    $geoip_city_continent_code #Je ne sais pas à quoi il sert, mais il semble que ce soit AS en Chine
    $geoip_latitude #Latitude
    $geoip_longitude #Longitude

    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 de ce site Web
    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

    Outils d'IA chauds

    Undresser.AI Undress

    Undresser.AI Undress

    Application basée sur l'IA pour créer des photos de nu réalistes

    AI Clothes Remover

    AI Clothes Remover

    Outil d'IA en ligne pour supprimer les vêtements des photos.

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    AI Hentai Generator

    AI Hentai Generator

    Générez AI Hentai gratuitement.

    Article chaud

    R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
    1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Meilleurs paramètres graphiques
    1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
    Will R.E.P.O. Vous avez un jeu croisé?
    1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

    Outils chauds

    Bloc-notes++7.3.1

    Bloc-notes++7.3.1

    Éditeur de code facile à utiliser et gratuit

    SublimeText3 version chinoise

    SublimeText3 version chinoise

    Version chinoise, très simple à utiliser

    Envoyer Studio 13.0.1

    Envoyer Studio 13.0.1

    Puissant environnement de développement intégré PHP

    Dreamweaver CS6

    Dreamweaver CS6

    Outils de développement Web visuel

    SublimeText3 version Mac

    SublimeText3 version Mac

    Logiciel d'édition de code au niveau de Dieu (SublimeText3)

    Comment vérifier si Nginx est démarré Comment vérifier si Nginx est démarré Apr 14, 2025 pm 01:03 PM

    Comment confirmer si Nginx est démarré: 1. Utilisez la ligne de commande: SystemCTl Status Nginx (Linux / Unix), netStat -ano | Findstr 80 (Windows); 2. Vérifiez si le port 80 est ouvert; 3. Vérifiez le message de démarrage NGINX dans le journal système; 4. Utilisez des outils tiers, tels que Nagios, Zabbix et Icinga.

    Comment configurer Nginx dans Windows Comment configurer Nginx dans Windows Apr 14, 2025 pm 12:57 PM

    Comment configurer Nginx dans Windows? Installez Nginx et créez une configuration d'hôte virtuelle. Modifiez le fichier de configuration principale et incluez la configuration de l'hôte virtuel. Démarrer ou recharger nginx. Testez la configuration et affichez le site Web. Activer sélectivement SSL et configurer les certificats SSL. Définissez sélectivement le pare-feu pour permettre le trafic Port 80 et 443.

    Comment résoudre le problème du domaine croisé nginx Comment résoudre le problème du domaine croisé nginx Apr 14, 2025 am 10:15 AM

    Il existe deux façons de résoudre le problème du domaine transversal NGINX: modifiez les en-têtes de réponse transversale: ajoutez des directives pour autoriser les demandes de domaine croisé, spécifier des méthodes et des en-têtes autorisés et définir le temps du cache. Utilisez le module CORS: Activez les modules et configurez les règles CORS pour permettre des demandes, des méthodes, des en-têtes et du temps de cache.

    Comment vérifier si Nginx est démarré? Comment vérifier si Nginx est démarré? Apr 14, 2025 pm 12:48 PM

    Dans Linux, utilisez la commande suivante pour vérifier si Nginx est démarré: SystemCTL Status Nginx Juges Basé sur la sortie de la commande: si "Active: Active (Running)" s'affiche, Nginx est démarré. Si "Active: Inactive (Dead)" est affiché, Nginx est arrêté.

    Comment démarrer Nginx dans Linux Comment démarrer Nginx dans Linux Apr 14, 2025 pm 12:51 PM

    Étapes pour démarrer Nginx dans Linux: Vérifiez si Nginx est installé. Utilisez SystemCTL Start Nginx pour démarrer le service NGINX. Utilisez SystemCTL Activer Nginx pour activer le démarrage automatique de Nginx au démarrage du système. Utilisez SystemCTL Status Nginx pour vérifier que le démarrage est réussi. Visitez http: // localhost dans un navigateur Web pour afficher la page de bienvenue par défaut.

    Comment vérifier l'état de course de Nginx Comment vérifier l'état de course de Nginx Apr 14, 2025 am 11:48 AM

    Les méthodes pour afficher l'état en cours d'exécution de Nginx sont: utilisez la commande PS pour afficher l'état du processus; Afficher le fichier de configuration Nginx /etc/nginx/nginx.conf; Utilisez le module d'état NGINX pour activer le point de terminaison d'état; Utilisez des outils de surveillance tels que Prometheus, Zabbix ou Nagios.

    Comment résoudre l'erreur Nginx304 Comment résoudre l'erreur Nginx304 Apr 14, 2025 pm 12:45 PM

    Réponse à la question: 304 Erreur non modifiée indique que le navigateur a mis en cache la dernière version de ressource de la demande du client. Solution: 1. Effacer le cache du navigateur; 2. Désactiver le cache du navigateur; 3. Configurer Nginx pour permettre le cache client; 4. Vérifier les autorisations du fichier; 5. Vérifier le hachage du fichier; 6. Désactiver le CDN ou le cache proxy inversé; 7. Redémarrez Nginx.

    Comment démarrer le serveur Nginx Comment démarrer le serveur Nginx Apr 14, 2025 pm 12:27 PM

    Le démarrage d'un serveur Nginx nécessite différentes étapes en fonction des différents systèmes d'exploitation: Système Linux / Unix: Installez le package NGINX (par exemple, en utilisant Apt-Get ou Yum). Utilisez SystemCTL pour démarrer un service NGINX (par exemple, sudo systemctl start nginx). Système Windows: téléchargez et installez les fichiers binaires Windows. Démarrer Nginx à l'aide de l'exécutable Nginx.exe (par exemple, nginx.exe -c conf \ nginx.conf). Peu importe le système d'exploitation que vous utilisez, vous pouvez accéder au serveur IP

    See all articles