Maison > Article > Opération et maintenance > Contrôle d'accès HTTP et restrictions de requêtes de proxy inverse dans Nginx
Avec la popularisation progressive d'Internet, de nombreuses applications Web ont été largement utilisées dans différents environnements et scénarios. Cependant, pour les applications Web, la sécurité et les performances sont des facteurs cruciaux. Cet article explique comment utiliser le contrôle d'accès HTTP et les restrictions de requêtes de proxy inverse dans Nginx pour améliorer la sécurité et les performances des applications Web.
Contrôle d'accès HTTP
Avec le contrôle d'accès HTTP, Nginx peut restreindre l'accès au serveur Web, améliorant ainsi la sécurité des applications Web. Dans Nginx, la restriction des requêtes peut être effectuée à l'aide des directives Allow et Deny. La directive
allow peut être utilisée pour spécifier l'adresse IP ou le segment de réseau autorisé à accéder au serveur. Par exemple, pour autoriser l'accès à 192.168.0.1 et 192.168.0.2, vous pouvez ajouter la directive suivante au fichier de configuration Nginx :
location / { allow 192.168.0.1; allow 192.168.0.2; deny all; # ... }
La directive deny peut être utilisée pour spécifier l'adresse IP ou le segment de réseau qui refuse l'accès au serveur. . Par exemple, pour refuser l'accès à 192.168.0.3, vous pouvez ajouter la directive suivante après la directive Allow :
location / { allow 192.168.0.1; allow 192.168.0.2; deny 192.168.0.3; deny all; # ... }
Dans l'exemple ci-dessus, toutes les autres adresses IP se verront refuser l'accès au serveur.
En plus d'utiliser les directives Allow et Deny, Nginx prend également en charge l'utilisation de l'authentification HTTP pour contrôler l'accès au serveur Web. Ceci peut être réalisé en utilisant les directives auth_basic et auth_basic_user_file de Nginx. La directive
auth_basic est utilisée pour définir les zones qui nécessitent une authentification. Par exemple :
location /protected/ { auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd; # ... }
Pour utiliser l'authentification HTTP, vous devez d'abord créer un fichier htpasswd. Ce fichier peut être créé à l'aide de la commande htpasswd, par exemple :
htpasswd -c /etc/nginx/.htpasswd alice
Dans l'exemple ci-dessus, un utilisateur nommé alice est créé, qui sera utilisé pour l'authentification. htpasswd fournira également une invite de mot de passe à l'utilisateur. Vous devez saisir le mot de passe de l'utilisateur Alice et confirmer le mot de passe.
Limitations des requêtes de proxy inverse
En plus du contrôle d'accès HTTP, Nginx peut également contrôler les performances des applications Web via des limites de requêtes de proxy inverse. La limitation des requêtes de proxy inverse signifie que Nginx peut définir des limites de fréquence de requête pour empêcher les requêtes malveillantes.
Grâce aux limites de requêtes du proxy inverse, vous pouvez limiter le nombre de requêtes effectuées sur chaque adresse IP externe. Par exemple, vous pouvez ajouter la directive suivante au fichier de configuration Nginx :
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
La directive ci-dessus créera une zone restreinte nommée one avec une limite de 10 requêtes par seconde. Cette restriction ne s'appliquera que si l'adresse IP du demandeur se trouve dans son segment de réseau.
Pour appliquer des limites de fréquence de requêtes aux requêtes de votre application, vous pouvez utiliser la directive limit_req. Par exemple :
location / { limit_req zone=one burst=5; # ... }
La commande ci-dessus limitera le nombre de requêtes dans la zone restreinte de la zone un, tout en permettant un trafic instantané sur la plage de rafale. Si le trafic instantané dépasse la limite de rafale, le taux de requêtes sera réduit.
Résumé
Dans le développement et la gestion d'applications Web, la sécurité et les performances sont des facteurs cruciaux. En utilisant le contrôle d'accès HTTP et les restrictions de requêtes de proxy inverse dans Nginx, vous pouvez améliorer la sécurité et les performances de vos applications Web, améliorant ainsi l'expérience utilisateur. Nginx est un serveur Web et un proxy inverse populaire, riche en fonctionnalités et personnalisable, qui peut être utilisé pour répondre aux exigences de diverses applications Web.
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!