Syntaxe
emplacement [=|~|~*|^~] /uri/ {...}
Rules
= : indique la correspondance exacte de l'uri (les étudiants intéressés peuvent jeter un œil à la différence d'url et d'uri)
~ : Indique une correspondance régulière sensible à la casse
~* : Indique une correspondance régulière insensible à la casse
!~ && !~* : Indique une correspondance régulière non-correspondante sensible à la casse et une non-correspondance régulière insensible à la casse
/ : Correspondance universelle, toute la demande sera adaptée à la
cible de correspondance d'emplacement
Le test de correspondance d'emplacement utilise uniquement la partie uri de la demande, pas la partie paramètre. (Raison : il y a trop de façons d'écrire les paramètres et ne peuvent pas être mis en correspondance avec précision)
ordre de correspondance d'emplacement
Sous le principe de configurations d'emplacement multiples, l'ordre de correspondance d'emplacement (non vérifié, hehe, recherché sur Google)
1. Match first =
2. Deuxièmement, match^~
3. Ensuite, effectuez une correspondance régulière selon l'ordre du fichier de configuration,
4 Enfin, remettez-le à / pour une correspondance générale. correspondance réussie, arrêtez immédiatement la correspondance et suivez les règles de correspondance actuelles
Exemple de démonstration
le fichier de configuration nginx est divisé en trois structures hiérarchiques de bas en haut :
| bloc http http bloque le niveau du protocole | niveau v bloc d'emplacement que l'uri
nginx demandé permet L'utilisateur définit le bloc d'emplacement et spécifie un modèle de correspondance pour correspondre à un URI spécifique. En plus des chaînes simples (telles que les chemins du système de fichiers), des modèles de correspondance plus complexes sont également autorisés. La forme syntaxique de base du bloc
location est :
location [=|~|~*|^~|@] pattern { ... }
[=|~|~*|^~|@] est appelé modificateur d'emplacement, qui définira comment nginx correspond au modèle suivant, et le plus basique des attributs de motif (simple chaîne ou expression régulière).
À propos du modificateur d'emplacement
1. =
Cela correspondra complètement au modèle spécifié, et le modèle ici est limité à une simple chaîne, ce qui signifie que les expressions régulières ne peuvent pas être utilisées ici. exemple :
server { server_name jb51.net; location = /abcd { […] } }
Situation correspondante :
http://jb51.net/abcd # Correspond exactement à http://jb51.net/abcd # Si le système exécutant le serveur nginx n'est pas sensible à la casse, comme Windows, alors ça correspond aussi
http://jb51.net/abcd?param1?m2 # Ignorez les arguments de la chaîne de requête, voici le ?param1?m2 après /abcd http://jb51.net/abcd/ # Ne correspond pas car il y a une barre oblique à la fin. nginx ne considère pas cette situation comme une correspondance complète
http://jb51.net/abcde # Ne correspond pas car ce n'est pas une correspondance complète
(aucun)
.
exemple :server {
server_name website.com;
location /abcd {
[…]
}
}
Situation correspondante :
http://jb51.net/abcd # Correspond exactement à
http://jb51.net/abcd # Si le système exécutant le serveur nginx n'est pas sensible à la casse, comme Windows, alors cela correspond aussi
http://jb51.net/abcde # Cela correspond toujours car l'uri commence par le motif
3 ~
Ce modificateur d'emplacement est sensible à la casse et le motif doit être un. expression régulière
example: server { server_name jb51.net; location ~ ^/abcd$ { […] } }Situation de correspondance :
http://jb51.net/abcd # Correspondance exacte http://jb51.net/abcd # Aucune correspondance, ~ est sensible à la casse
http://jb51.net/ abcd?param1?m2 # Ignorez les arguments de la chaîne de requête, voici le ?param1?m2 après /abcd http://jb51.net/abcd/ # Ne correspond pas, car il y a une barre oblique à la fin, ce n'est pas le cas correspond à l'expression régulière ^/abcd$ http://jb51.net/abcde Pour les systèmes sensibles, tels que Windows, ~ et ~* ne fonctionneront pas Cela est principalement dû au système d'exploitation.
4. ~*
与 ~ 类似,但这个 location modifier 不区分大小写,pattern 须是正则表达式
example:
server { server_name website.com; location ~* ^/abcd$ { […] } }
匹配情况:
http://jb51.net/abcd # 完全匹配
http://jb51.net/abcd # 匹配,这就是它不区分大小写的特性
http://jb51.net/abcd?param1?m2 # 忽略查询串参数(query string arguments),这里就是 /abcd 后面的 ?param1?m2
http://jb51.net/abcd/ # 不匹配,因为末尾存在反斜杠(trailing slash),并不匹配正则表达式 ^/abcd$
http://jb51.net/abcde # 不匹配正则表达式 ^/abcd$
5. ^~
匹配情况类似 2. (none) 的情况,以指定匹配模式开头的 uri 被匹配,不同的是,一旦匹配成功,那么 nginx 就停止去寻找其他的 location 块进行匹配了(与 location 匹配顺序有关)
6. @
用于定义一个 location 块,且该块不能被外部 client 所访问,只能被 nginx 内部配置指令所访问,比如 try_files or error_page
演示实例
产生的效果如下:
访问根目录/,匹配到location /
访问除hello.php之外的其它php程序,匹配到location ~ \.php$,并且用php5-fpm去运行
访问hello.php,匹配到location = /hello.php,访问被重定向到好联系官网
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!

Nginx convient pour gérer une concurrence élevée et un contenu statique, tandis qu'Apache convient au contenu dynamique et aux réécritures d'URL complexes. 1.Nginx adopte un modèle axé sur les événements, adapté à une concurrence élevée. 2. Apache utilise un modèle de processus ou de thread, qui convient au contenu dynamique. 3. La configuration Nginx est simple, tandis que la configuration d'Apache est complexe mais plus flexible.

Nginx et Apache ont chacun leurs propres avantages, et le choix dépend des besoins spécifiques. 1.Nginx convient à une concurrence élevée, avec un déploiement simple, et les exemples de configuration incluent des hôtes virtuels et un proxy inverse. 2. Apache convient aux configurations complexes et est tout aussi simple à déployer. Les exemples de configuration incluent des hôtes virtuels et des réécritures d'URL.

Le but de Nginxunit est de simplifier le déploiement et la gestion des applications Web. Ses avantages incluent: 1) prend en charge plusieurs langages de programmation, tels que Python, PHP, Go, Java et Node.js; 2) Fournit des fonctions de configuration dynamique et de rechargement automatique; 3) Gère le cycle de vie de l'application via une API unifiée; 4) Adoptez un modèle d'E / S asynchrone pour soutenir une concurrence élevée et un équilibrage de charge.

Nginx a commencé en 2002 et a été développé par Igorsysoev pour résoudre le problème C10K. 1.Nginx est un serveur Web haute performance, une architecture asynchrone motivée par des événements, adaptée à une concurrence élevée. 2. Fournir des fonctions avancées telles que le proxy inverse, l'équilibrage de la charge et la mise en cache pour améliorer les performances et la fiabilité du système. 3. Les techniques d'optimisation comprennent l'ajustement du nombre de processus de travail, permettant la compression GZIP, en utilisant HTTP / 2 et la configuration de sécurité.

La principale différence d'architecture entre Nginx et Apache est que Nginx adopte le modèle non bloquant asynchrone axé sur les événements, tandis qu'Apache utilise un modèle de processus ou de thread. 1) Nginx gère efficacement les connexions à haut contrat à haut contrat à travers des boucles d'événements et des mécanismes de multiplexage d'E / S, adaptés à la teneur en statique et à l'inverse proxy. 2) Apache adopte un modèle multiproce ou multithread, qui est très stable mais a une consommation élevée de ressources, et convient aux scénarios où une expansion riche en modules est requise.

Nginx convient pour gérer un contenu simultané et statique élevé, tandis qu'Apache convient aux configurations complexes et au contenu dynamique. 1. Nginx gère efficacement les connexions simultanées, adaptées aux scénarios à haut trafic, mais nécessite une configuration supplémentaire lors du traitement du contenu dynamique. 2. Apache fournit des modules riches et des configurations flexibles, qui conviennent aux besoins complexes, mais ont de mauvaises performances de concurrence élevées.

Nginx et Apache ont chacun leurs propres avantages et inconvénients, et le choix doit être basé sur des besoins spécifiques. 1.Nginx convient aux scénarios de concurrence élevés en raison de son architecture asynchrone non bloquant. 2. Apache convient aux scénarios à faible monnaie qui nécessitent des configurations complexes, en raison de sa conception modulaire.

NginxUnit est un serveur d'applications open source qui prend en charge plusieurs langages de programmation et fournit des fonctions telles que la configuration dynamique, les mises à jour de temps d'arrêt zéro et l'équilibrage de charge intégré. 1. Configuration dynamique: vous pouvez modifier la configuration sans redémarrer. 2. Prise en charge multilingue: compatible avec Python, GO, Java, PHP, etc. 3. MISE À JOUR DE TEMPS D'INFORMATION ZERO: prend en charge les mises à jour d'application qui n'interrompent pas les services. 4. Équilibrage de charge intégré: les demandes peuvent être distribuées à plusieurs instances d'application.


Outils d'IA chauds

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.

Undress AI Tool
Images de déshabillage gratuites

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 Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

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

Dreamweaver Mac
Outils de développement Web visuel
