Maison >Opération et maintenance >Nginx >Application du contrôle d'accès et du contrôle de flux dans le proxy inverse Nginx

Application du contrôle d'accès et du contrôle de flux dans le proxy inverse Nginx

WBOY
WBOYoriginal
2023-06-10 18:58:401342parcourir

Nginx est un serveur Web hautes performances, open source et polyvalent qui est également largement utilisé comme serveur proxy inverse. Les serveurs proxy inverses peuvent être utilisés pour fournir des fonctionnalités telles que l'équilibrage de charge, la haute disponibilité, le contrôle d'accès et le contrôle du trafic. Cet article présentera l'application du contrôle d'accès et du contrôle de flux dans le proxy inverse Nginx.

1. Contrôle d'accès

  1. Liste noire/liste blanche d'adresses IP

Nginx peut mettre en œuvre un contrôle d'accès sur les demandes en configurant une liste noire ou une liste blanche d'adresses IP. Les adresses IP de la liste noire se verront refuser l'accès, tandis que les adresses IP de la liste blanche seront autorisées à accéder. Par exemple, nous pouvons ajouter le code suivant au fichier de configuration de Nginx :

# IP地址黑名单
location / {
    deny 192.168.1.1;
    deny 192.168.1.2;
    allow all;
}

# IP地址白名单
location / {
    deny all;
    allow 192.168.1.1;
    allow 192.168.1.2;
}
  1. Contrôle d'accès basé sur l'authentification de l'utilisateur

Nginx peut également implémenter un contrôle d'accès basé sur l'authentification de l'utilisateur via le module nginx-http-auth-digest. Par exemple, nous pouvons ajouter le code suivant au fichier de configuration Nginx :

# 用户认证
location / {
    auth_digest "Enter username and password";
    auth_digest_user_file /etc/nginx/user.passwd;
}

Où, /etc/nginx/user.passwd est le fichier qui stocke les noms d'utilisateur et les mots de passe. Une fois la configuration terminée, les utilisateurs doivent saisir leur nom d'utilisateur et leur mot de passe pour accéder au serveur proxy inverse Nginx.

2. Contrôle de flux

1. Limiter le taux de requêtes

Nginx peut limiter le taux de requêtes via le module ngx_http_limit_req_module. Par exemple, nous pouvons ajouter le code suivant au fichier de configuration Nginx :

# 限制请求速率
http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
    server {
        location / {
            limit_req zone=one burst=5;
        }
    }
}

Où, rate=1r/s signifie qu'une seule requête est autorisée par seconde, et burst=5 signifie qu'une rafale de 5 requêtes est autorisée en réponse. . Cette méthode de limitation du débit de requêtes évite aux utilisateurs malveillants de consommer les ressources du serveur en envoyant un grand nombre de requêtes.

2. Limiter le taux de connexion

Nginx peut limiter le taux de connexion via le module ngx_http_limit_conn_module. Par exemple, nous pouvons ajouter le code suivant au fichier de configuration Nginx :

# 限制连接速率
http {
    limit_conn_zone $binary_remote_addr zone=addr:10m;
    server {
        location / {
            limit_conn addr 10;
        }
    }
}

Où limit_conn_zone est utilisé pour définir la zone de stockage partagée pour les limites de débit de connexion, et limit_conn est utilisé pour limiter le nombre maximum de connexions par adresse IP. Cette méthode de limitation des débits de connexion empêche les utilisateurs malveillants de refuser le service en monopolisant un grand nombre de connexions.

Résumé

Le serveur proxy inverse Nginx possède de solides capacités d'application en matière de contrôle d'accès et de contrôle de flux. Il peut mettre en œuvre des requêtes via une liste noire/liste blanche d'adresses IP, l'authentification des utilisateurs, une limite de taux de requêtes et une limite de taux de connexion et de contrôle de flux. Ces méthodes peuvent protéger efficacement les ressources du serveur et améliorer la disponibilité et la sécurité des services.

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