Maison Opération et maintenance Nginx Configuration du contrôle d'accès basé sur les expressions régulières dans le proxy inverse Nginx

Configuration du contrôle d'accès basé sur les expressions régulières dans le proxy inverse Nginx

Jun 10, 2023 pm 11:09 PM
正则表达式 nginx 反向代理

Nginx est un serveur Web et un serveur proxy inverse hautes performances largement utilisé dans les services Internet en raison de son efficacité et de son évolutivité. Nginx fournit de nombreux mécanismes pour contrôler l'accès et sécuriser les applications Web, dont l'un est le contrôle d'accès basé sur les expressions régulières. Cet article explique comment utiliser la configuration du contrôle d'accès basée sur les expressions régulières dans le proxy inverse Nginx.

Bases du proxy inverse Nginx

Avant de commencer à expliquer comment utiliser le contrôle d'accès basé sur les expressions régulières, nous devons comprendre certaines connaissances de base du proxy inverse Nginx.

Le principe de fonctionnement de base du proxy inverse Nginx est de transmettre les demandes des clients au service backend. En règle générale, les clients accèdent aux applications Web via des requêtes HTTP, et le serveur proxy inverse reçoit ces requêtes, les transmet au serveur Web principal et renvoie la réponse au client.

Contrairement aux équilibreurs de charge traditionnels, le proxy inverse Nginx peut effectuer d'autres tâches que le simple transfert de requêtes vers des serveurs backend, telles que le contrôle d'accès, la mise en cache du contenu, la modification des en-têtes de requête et de réponse, etc.

Contrôle d'accès basé sur les expressions régulières

Nginx fournit de nombreux mécanismes pour contrôler l'accès et sécuriser les applications Web, l'un d'eux est le contrôle d'accès basé sur les expressions régulières. Les expressions régulières peuvent correspondre exactement aux URL de requête. Par conséquent, l’utilisation d’expressions régulières comme règles de correspondance nous permet de contrôler plus précisément l’accès demandé.

Une façon courante d'utiliser des expressions régulières pour le contrôle d'accès consiste à utiliser des blocs de localisation. Le rôle du bloc de localisation est de faire correspondre l'URI demandé et d'exécuter une série d'instructions lorsque la correspondance réussit. Ces instructions peuvent inclure le proxy inverse vers les serveurs back-end, la définition des en-têtes de requête, la mise en cache des réponses, le contrôle de l'accès, etc.

En utilisant le contrôle d'accès basé sur les expressions régulières, vous pouvez généralement utiliser les deux méthodes suivantes :

  1. Autoriser/refuser toutes les demandes, puis autoriser/refuser les demandes spécifiées via des expressions régulières.
  2. Refusez toutes les demandes, puis autorisez les demandes spécifiées via une expression régulière.

Ci-dessous, nous présenterons ces deux méthodes en détail.

Autoriser/interdire toutes les requêtes, puis autoriser/interdire les requêtes spécifiées via des expressions régulières

Cette méthode consiste à utiliser des expressions régulières pour déterminer si la requête autorise l'accès. Tout d'abord, nous devons ajouter le contenu suivant au fichier de configuration Nginx :

location / {
  deny all;
  allow [ip_address];
}
Copier après la connexion

La configuration ci-dessus bloquera toutes les requêtes et permettra l'accès aux requêtes à partir de l'adresse IP spécifiée. Ensuite, nous pouvons utiliser des expressions régulières pour déterminer si l'accès demandé est autorisé. Par exemple, si nous voulons uniquement autoriser des requêtes d'URL spécifiques, nous pouvons utiliser la configuration suivante :

location / {
  deny all;
  allow [ip_address];
}

location ~ ^/allowed_path {
  allow all;
}
Copier après la connexion

La configuration ci-dessus autorisera les requêtes provenant de l'adresse IP spécifiée et autorisera les requêtes provenant d'URL commençant par /allowed_path. Toutes les autres demandes seront refusées.

Refuser toutes les demandes, puis autoriser les demandes spécifiées via une expression régulière

Cette méthode consiste à refuser toutes les demandes et à autoriser l'accès à des demandes spécifiques à l'aide d'expressions régulières. Nous pouvons utiliser ce qui suit dans le fichier de configuration Nginx :

location / {
  deny all;
}

location ~ ^/(allowed_path|another_path) {
  allow all;
}
Copier après la connexion

La configuration ci-dessus refusera toutes les requêtes et autorisera uniquement l'accès aux requêtes commençant par /allowed_path ou /another_path.

L'utilisation d'expressions régulières pour le contrôle d'accès nous permet de contrôler plus précisément l'accès demandé. Cependant, afin de garantir la sécurité et les performances, nous devons configurer le serveur proxy inverse Nginx de manière raisonnable pour éviter de dégrader l'expérience utilisateur en raison de restrictions excessives sur les requêtes. Dans le même temps, nous devons également protéger le serveur proxy inverse contre les attaques malveillantes, telles que les attaques par déni de service, les attaques par injection SQL et les attaques par script intersite. Par conséquent, lors de l’utilisation du proxy inverse Nginx, nous devons suivre les meilleures pratiques pour garantir la sécurité et la fiabilité des 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!

Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment valider une adresse e-mail dans Golang à l'aide d'une expression régulière ? Comment valider une adresse e-mail dans Golang à l'aide d'une expression régulière ? May 31, 2024 pm 01:04 PM

Pour valider les adresses e-mail dans Golang à l'aide d'expressions régulières, procédez comme suit : Utilisez regexp.MustCompile pour créer un modèle d'expression régulière qui correspond aux formats d'adresse e-mail valides. Utilisez la fonction MatchString pour vérifier si une chaîne correspond à un modèle. Ce modèle couvre la plupart des formats d'adresses e-mail valides, notamment : Les noms d'utilisateur locaux peuvent contenir des lettres, des chiffres et des caractères spéciaux : !.#$%&'*+/=?^_{|}~-`Les noms de domaine doivent contenir au moins un lettre, suivie de lettres, de chiffres ou de tirets. Le domaine de premier niveau (TLD) ne peut pas comporter plus de 63 caractères.

Comment faire correspondre les horodatages à l'aide d'expressions régulières dans Go ? Comment faire correspondre les horodatages à l'aide d'expressions régulières dans Go ? Jun 02, 2024 am 09:00 AM

Dans Go, vous pouvez utiliser des expressions régulières pour faire correspondre les horodatages : compilez une chaîne d'expression régulière, telle que celle utilisée pour faire correspondre les horodatages ISO8601 : ^\d{4}-\d{2}-\d{2}T \d{ 2}:\d{2}:\d{2}(\.\d+)?(Z|[+-][0-9]{2}:[0-9]{2})$ . Utilisez la fonction regexp.MatchString pour vérifier si une chaîne correspond à une expression régulière.

Comment vérifier le mot de passe à l'aide d'une expression régulière dans Go ? Comment vérifier le mot de passe à l'aide d'une expression régulière dans Go ? Jun 02, 2024 pm 07:31 PM

La méthode d'utilisation des expressions régulières pour vérifier les mots de passe dans Go est la suivante : Définissez un modèle d'expression régulière qui répond aux exigences minimales de mot de passe : au moins 8 caractères, y compris les lettres minuscules, les lettres majuscules, les chiffres et les caractères spéciaux. Compilez les modèles d'expressions régulières à l'aide de la fonction MustCompile du package regexp. Utilisez la méthode MatchString pour tester si la chaîne d'entrée correspond à un modèle d'expression régulière.

Comment déployer et maintenir un site Web en utilisant PHP Comment déployer et maintenir un site Web en utilisant PHP May 03, 2024 am 08:54 AM

Pour déployer et maintenir avec succès un site Web PHP, vous devez effectuer les étapes suivantes : Sélectionnez un serveur Web (tel qu'Apache ou Nginx) Installez PHP Créez une base de données et connectez PHP Téléchargez le code sur le serveur Configurez le nom de domaine et la maintenance du site Web de surveillance DNS les étapes comprennent la mise à jour de PHP et des serveurs Web, la sauvegarde du site Web, la surveillance des journaux d'erreurs et la mise à jour du contenu.

Comment utiliser Fail2Ban pour protéger votre serveur contre les attaques par force brute Comment utiliser Fail2Ban pour protéger votre serveur contre les attaques par force brute Apr 27, 2024 am 08:34 AM

Une tâche importante pour les administrateurs Linux est de protéger le serveur contre les attaques ou les accès illégaux. Par défaut, les systèmes Linux sont livrés avec des pare-feu bien configurés, tels que iptables, Uncomplicated Firewall (UFW), ConfigServerSecurityFirewall (CSF), etc., qui peuvent empêcher diverses attaques. Toute machine connectée à Internet est une cible potentielle d'attaques malveillantes. Il existe un outil appelé Fail2Ban qui peut être utilisé pour atténuer les accès illégaux sur le serveur. Qu’est-ce que Fail2Ban ? Fail2Ban[1] est un logiciel de prévention des intrusions qui protège les serveurs des attaques par force brute. Il est écrit en langage de programmation Python

Venez avec moi apprendre Linux et installer Nginx Venez avec moi apprendre Linux et installer Nginx Apr 28, 2024 pm 03:10 PM

Aujourd'hui, je vais vous amener à installer Nginx dans l'environnement Linux. Le système Linux utilisé ici est CentOS7.2 Préparez les outils d'installation 1. Téléchargez Nginx depuis le site officiel de Nginx. La version utilisée ici est : 1.13.6.2 Téléchargez le Nginx téléchargé sur Linux Ici, le répertoire /opt/nginx est utilisé comme exemple. Exécutez "tar-zxvfnginx-1.13.6.tar.gz" pour décompresser. 3. Basculez vers le répertoire /opt/nginx/nginx-1.13.6 et exécutez ./configure pour la configuration initiale. Si l'invite suivante apparaît, cela signifie que PCRE n'est pas installé sur la machine et que Nginx doit

Comment détecter une URL avec une expression régulière dans Golang ? Comment détecter une URL avec une expression régulière dans Golang ? May 31, 2024 am 10:32 AM

Les étapes pour détecter les URL dans Golang à l'aide d'expressions régulières sont les suivantes : Compilez le modèle d'expression régulière à l'aide de regexp.MustCompile(pattern). Le modèle doit correspondre aux paramètres de protocole, de nom d'hôte, de port (facultatif), de chemin (facultatif) et de requête (facultatif). Utilisez regexp.MatchString(pattern,url) pour détecter si l'URL correspond au modèle.

Comment implémenter les meilleures pratiques de sécurité PHP Comment implémenter les meilleures pratiques de sécurité PHP May 05, 2024 am 10:51 AM

Comment mettre en œuvre les meilleures pratiques de sécurité PHP PHP est l'un des langages de programmation Web backend les plus populaires utilisés pour créer des sites Web dynamiques et interactifs. Cependant, le code PHP peut être vulnérable à diverses failles de sécurité. La mise en œuvre des meilleures pratiques de sécurité est essentielle pour protéger vos applications Web contre ces menaces. Validation des entrées La validation des entrées est une première étape essentielle pour valider les entrées utilisateur et empêcher les entrées malveillantes telles que l'injection SQL. PHP fournit une variété de fonctions de validation d'entrée, telles que filter_var() et preg_match(). Exemple : $username=filter_var($_POST['username'],FILTER_SANIT

See all articles