


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 ?
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; }
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; }
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;
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; }
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看到的信息只显示服务器错误,无法判断真正原因。 }
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;
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; } }
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
Pour le système centos, installez le module.
yum install nginx-module-geoip
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
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页面 } } }
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-UnisParamè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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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? 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.

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.

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é.

É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.

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.

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.

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
