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
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; }
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!