Master les blocs d'emplacement Nginx
Nginx sélectionne les blocs d'emplacement en fonction de la priorité: = (correspondance exacte) est la plus élevée, ^ ~ (match de préfixe) est le deuxième, ~ ou ~ * (match régulier) est le plus bas, et le préfixe normal est le plus bas; 2. Les modèles communs incluent ^ ~ Optimiser les fichiers statiques, / interface API / Proxy, ~ Masking Files caché, = chemin racine de réponse rapide; 3. Évitez les pièges: n'abusez pas de régularité, faites attention aux différences de barres obliques et utilisez raisonnablement Try_Files pour mettre en œuvre le routage des spa; 4. Après modification, vous devez utiliser Sudo Nginx -T pour tester la configuration et ajouter temporairement / débogage pour vérifier la logique de correspondance. Maîtrisez l'ordre prioritaire et écrivez une configuration Nginx efficace et sûre.
Les blocs d'emplacement NGINX sont l'une des fonctionnalités les plus puissantes et les plus mal compris dans la configuration Nginx. Ils déterminent comment Nginx gère les demandes en fonction du chemin d'URL - mais les règles de correspondance et de priorité peuvent être difficiles si vous ne savez pas quoi rechercher.

Voici comment maîtriser les blocs d'emplacement Nginx sans se perdre dans la jungle de syntaxe.
? Comment Nginx choisit le bloc d'emplacement à utiliser
Lorsqu'une demande arrive (par exemple, /api/users
), Nginx vérifie tous les blocs location
définis et en sélectionne un en utilisant une commande de priorité stricte:

-
=
(correspondance exacte) - priorité la plus élevéelocalisation = / api { # Uniquement des matchs / API exactement - pas plus, pas moins }
^~
(Match du préfixe, sensible à la casse, pas de regex)Emplacement ^ ~ / statique / { # Matchs /static/css/app.css, etc., mais arrête d'autres vérifications regex }
*
~
(Regex de cas) ou `~ ` (regex insensible à la cas) **Emplacement ~ * \. (Jpg | png | gif) $ { #Serves Fichiers image - insensible à la casse }
Match préfixe non modifié (pas d'opérateur) - Priorité la plus basse parmi les matchs
emplacement / { # Fallback - correspond à tout le reste }
✅ Astuce de clé : Nginx n'utilise pas l'ordre dans votre fichier de configuration - il utilise cette logique de priorité. Ainsi, mettre un bloc Regex avant un match exact ne changera rien.
? Modèles communs que vous devriez connaître
✅ Servir efficacement les fichiers statiques
Emplacement ^ ~ / Assets / { root / var / www / myapp; expire 1Y; Add_header Cache-Control "public, immuable"; }
- Utilise
^~
pour éviter les frais généraux d'expulsion - Définit de longs en-têtes de cache pour les performances
✅ Demandes d'API proxy
Emplacement / API / { proxy_pass http: // backend; proxy_set_header host $ host; }
- Préfixe Match → Gandles
/api/v1/users
, etc. - Pas de regex = plus rapide que
~ /api/
✅ Bloquer des fichiers sensibles
Emplacement ~ / \. { nier tout; retour 404; }
- Bloque l'accès à des fichiers cachés comme
.env
,.git/
✅ Correspondance exacte pour les contrôles racinaires ou de santé
localisation = / { Retour 200 "OK"; Add_header Type de contenu Text / PLAIN; }
- Réponse la plus rapide possible - pas d'ambiguïté
⚠️ Pièces pour éviter
Ne mélangez pas le regex et le préfixe sans préoccupation
Si vous avez les deuxlocation /api/
etlocation ~ /API/
, le préfixe gagne à moins que vous n'utilisiez^~
ou=
.Regarder des barres obliques à traîne
location /path
Matchs/path
et/path/anything
Maislocation /path/
ne correspond que des chemins en commençant par/path/
- subtil mais important!Regex coûte cher
Évitez le regex sauf si vous en avez vraiment besoin (comme les extensions de fichiers ou les chemins dynamiques). Utilisez^~
ou des préfixes simples lorsque cela est possible.Utilisez judicieusement
try_files
à l'intérieur des emplacementsemplacement / { try_files $ uri $ uri / /index.html; }
C'est ainsi que vous activez le routage SPA (par exemple, les applications React / Vue).
✅ Astuce pro: testez votre configuration comme un pro
Après édition:
sudo nginx -t
Pour voir quel emplacement nginx choisit pour une URL donnée, ajoutez-le temporairement:
Emplacement / débogage { Retour 200 "Matted: / Debug \ n"; }
Ensuite, testez avec curl http://yoursite/debug
.
Ou utilisez des outils comme nginxconfig.io pour visualiser et générer des configurations sûres.
La maîtrise des blocs de localisation Nginx ne consiste pas à mémoriser chaque opérateur - il s'agit de comprendre l' ordre prioritaire et de savoir quand utiliser chaque type. Une fois que vous avez obtenu cela, l'écriture de configuration Nginx rapide, sécurisée et maintenable devient une seconde nature.
Fondamentalement, n'oubliez pas: =
, puis ^~
, puis ~
/ ~*
, puis préfixe ordinaire. Tout le reste coule à partir de là.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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

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

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

TOSETUPANNGINXSERVERBLOCK, FirstUnderstanditsStructureusingTheServerDirectivewithSettingSlikeListen, Server_name, andlocation; Next, CreateadirectoryStructureForyOrsitesuchas / var / www / example.com

Pour bloquer un agent utilisateur spécifique, il peut être implémenté dans Nginx, Apache ou Code (comme PHP, Python). 1. Dans nginx, juge $ http_user_agent par if et retour 403; 2. Dans Apache, utilisez setenvifNocase et niez pour refuser l'accès; 3. Juger l'utilisateur-agent dans le programme et intercepter la demande. Les UAS communs qui doivent être bloqués comprennent les refonces de python, la boucle, l'UA vide, etc. Le choix de la méthode appropriée peut réduire efficacement le trafic des ordures et les risques de sécurité.

Pour fournir efficacement les fichiers vidéo MP4, vous devez activer les demandes de plage d'octets, optimiser la structure des fichiers, le codage rationnel et la compression et adopter la mise en cache stratégique. Tout d'abord, activez la demande de plage d'octets (acceptation des gammes: octets) pour prendre en charge les sauts vidéo, les émissions interrompues et les flux de débit binaire adaptatifs; Deuxièmement, utilisez des outils tels que Qt-FastStart pour déplacer les atomes MOOV au début du fichier pour réaliser un jeu de fond; Troisièmement, utilisez le codage H.264 / H.265, définissez raisonnablement le débit binaire et activez le codage à double pass pour réduire la taille du fichier tout en garantissant la qualité; Enfin, en définissant des en-têtes de contrôle de cache à long terme et en utilisant CDN pour la mise en cache des bords, réduisez la charge du serveur et améliorez la vitesse de réponse.

Les mesures clés pour protéger la sécurité des serveurs Nginx incluent: 1. Configurer les connexions cryptées HTTPS, utiliser des certificats gratuits de LETSCRYPT et les configurer automatiquement via CERTBOT, configurer des sauts forcés et des suites de chiffrement appropriées et permettre le renouvellement automatique; 2. Restreindre les autorisations d'accès, protéger les chemins sensibles via le contrôle IP et l'authentification Basic Auth; 3. Éteignez les fuites d'informations, masquez les numéros de version, interdisez la navigation du répertoire et personnalisez les pages d'erreur pour réduire la surface d'attaque.

Comment implémenter l'équilibrage de la charge HTTP à l'aide de Nginx? Les réponses sont les suivantes: 1. Utilisez le module en amont pour définir le groupe de serveurs backend et transférer la demande via proxy_pass dans le serveur ou l'emplacement; 2. Soutenir le sondage, le sondage pondéré, la connexion minimale et les politiques de hachage IP; 3. Vous pouvez configurer les paramètres Down, Backup, Fail_timeout et Max_Fails pour améliorer la stabilité; 4. Après avoir modifié la configuration, exécutez la syntaxe de vérification NGINX-T et utilisez Nginx-Sreload pour prendre effet. Par exemple, la structure de configuration de base comprend trois nœuds backend utilisant le sondage pour distribuer le trafic par défaut, tandis que le sondage pondéré permet l'allocation des demandes en poids, le moins_connexion enverra la demande

Le défaut de démarrage de Nginx est généralement causé par des erreurs de configuration, des conflits de port ou des problèmes d'autorisation. Vérifiez d'abord le journal d'erreur NGINX, utilisez la commande sudototail-f / var / log / nginx / error.log pour afficher les dernières informations d'erreur en temps réel; Deuxièmement, testez la syntaxe du fichier de configuration, exécutez Sudonginx-T pour vous assurer qu'il n'y a pas d'erreurs de syntaxe; Confirmez ensuite si les autres processus occupent le port 80 ou 443 et utilisez sudonetstat-tulpn | grep ': 80 \ |: 443' pour détecter et gérer les conflits; Vérifiez enfin les autorisations de fichiers et la propriété pour vous assurer que Nginx a l'autorisation d'accéder aux répertoires et fichiers pertinents.

Lorsque vous utilisez Server_name dans Nginx pour correspondre à plusieurs domaines ou sous-domaines, il peut être réalisé grâce à des caractères génériques et des expressions régulières. 1. Lors de l'utilisation des jilèges, l'astérisque ne peut être utilisé que pour le début ou la fin, et doit être une limite d'étiquette complète. Par exemple, .example.com peut correspondre aux sous-domaines de premier niveau mais n'inclut pas les domaines racine ou les sous-domaines à plusieurs niveaux. Si vous devez faire correspondre les domaines racine et les sous-domaines de premier niveau, il doit être écrit comme example.com * .example.com; 2. Lorsque vous utilisez des expressions régulières, vous devez commencer par ~, comme ~ ^ \ w. (Dev | test) $ peut faire correspondre les noms de domaine se terminant par .dev ou .test, et prendre en charge les appels de groupe de capture; 3. La priorité correspondante est le nom exact> le plus long préfixe de joker> le plus long suffixe générique &

Définissez Worker_Processes sur Auto (c'est-à-dire le nombre de cœurs CPU) pour utiliser pleinement les performances multi-cœurs; 2. Définir Worker_Connections (tel que 1024 ou plus) en fonction de la limitation du descripteur du fichier système et du trafic attendu pour garantir que Ulimit-n est suffisamment grand; 3. Le nombre maximum de connexions simultanées = Worker_Processs × Worker_Connections, une configuration raisonnable peut prendre en charge des milliers à des dizaines de milliers de connexions, éviter les goulots d'étranglement et améliorer les performances de l'environnement de production de Nginx.
