Maison >Opération et maintenance >Nginx >Comment Nginx implémente la configuration du contrôle d'accès basée sur l'adresse IP source de la requête

Comment Nginx implémente la configuration du contrôle d'accès basée sur l'adresse IP source de la requête

WBOY
WBOYoriginal
2023-11-08 10:09:21885parcourir

Comment Nginx implémente la configuration du contrôle daccès basée sur ladresse IP source de la requête

La manière dont Nginx implémente la configuration du contrôle d'accès basée sur l'adresse IP de la source de la requête nécessite des exemples de code spécifiques

Dans le développement d'applications réseau, la protection du serveur contre les attaques malveillantes est une étape très importante. En utilisant Nginx comme serveur proxy inverse, nous pouvons configurer le contrôle d'accès IP pour restreindre l'accès à des adresses IP spécifiques afin d'améliorer la sécurité du serveur. Cet article présentera comment implémenter la configuration du contrôle d'accès basée sur l'adresse IP source de la requête dans Nginx et fournira des exemples de code spécifiques.

Tout d'abord, nous devons éditer le fichier de configuration Nginx. Généralement, ce fichier se trouve dans /etc/nginx/nginx.conf. Dans ce fichier, nous pouvons trouver un bloc appelé "http", qui contient la configuration globale de Nginx. Nous devons ajouter le code suivant au bloc :

http {
    # 定义一个名为“block_ip”的map,用于存储需要屏蔽的IP地址
    map $remote_addr $block_ip {
        default 0;  # 默认情况下,不屏蔽任何IP地址
        192.168.0.100 1;  # 需要屏蔽的IP地址,值设为1
        192.168.0.101 1;  # 需要屏蔽的IP地址,值设为1
    }
    
    # 定义一个名为“block_ips”的变量,通过内部重定向的方式使用“block_ip”进行判断
    set $block_ips "";
    if ($block_ip = 1) {
        set $block_ips "block";
    }
    
    # 在server块中添加访问控制配置,只允许没有被屏蔽的IP地址访问
    server {
        listen 80;
        server_name example.com;
        
        # 添加对block_ips变量值的判断
        if ($block_ips = "block") {
            return 403;
        }
    }
}

Dans le code ci-dessus, nous définissons d'abord une carte nommée "block_ip" pour stocker les adresses IP qui doivent être bloquées. Par défaut, il est défini sur 0, ce qui signifie qu'aucune adresse IP n'est bloquée. Nous pouvons définir une adresse IP spécifique sur 1 selon les besoins, indiquant que l'adresse IP doit être bloquée.

Ensuite, nous définissons une variable nommée "block_ips" et utilisons "block_ip" pour le jugement via la redirection interne. Tout d’abord, nous définissons la variable comme vide. Ensuite, utilisez l'instruction if pour déterminer si la valeur de "block_ip" est égale à 1. Si tel est le cas, définissez "block_ips" sur "block".

Enfin, la configuration du contrôle d'accès est ajoutée dans le bloc serveur. Nous utilisons la directive Listen pour spécifier le numéro du port d'écoute et la directive server_name pour spécifier le nom de domaine ou l'adresse IP. Dans l'instruction if, nous déterminons si la valeur de "block_ips" est égale à "block". Si tel est le cas, renvoyez une réponse 403 Forbidden.

Le code ci-dessus n'est qu'un exemple et est uniquement utilisé pour démontrer comment implémenter la configuration du contrôle d'accès basée sur l'adresse IP source de la requête dans Nginx. Veuillez effectuer les configurations appropriées en fonction des besoins réels, comme l'ajout d'adresses IP à bloquer, la modification du numéro de port d'écoute et du nom de domaine, etc.

En résumé, Nginx peut facilement implémenter un contrôle d'accès basé sur l'adresse IP source de la requête en utilisant des cartes et des variables. En effectuant les configurations correspondantes dans le fichier de configuration, nous pouvons restreindre l'accès à des adresses IP spécifiques, améliorant ainsi la sécurité du serveur.

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