Heim Betrieb und Instandhaltung Nginx Was sind die URI-Abgleichsregeln der Nginx-Standortrichtlinie?

Was sind die URI-Abgleichsregeln der Nginx-Standortrichtlinie?

May 14, 2023 pm 11:58 PM
nginx location uri

1. Einführung

Die Standortanweisung ist die Kernkonfiguration im http-Modul. Sie empfängt Anfragen, die von Benutzern basierend auf vordefinierten URL-Matching-Regeln gesendet werden, und leitet die Anfragen basierend auf den Matching-Ergebnissen an den Backend-Server weiter. 403-, 404-, 500-Fehlerverarbeitung usw. direkt ablehnen und zurückgeben.

2. Syntax der Standortanweisung

location [=|~|~*|^~|@] /uri/ { … } oder location @name { … }

3 Die location-Direktive ist in zwei Matching-Modi unterteilt:
1> Gewöhnlicher String-Matching: Regeln beginnend mit = oder ohne führende Zeichen (~)

2> Regulärer Matching: Beginnend mit ~ oder ~* bedeutet regulärer Matching, ~* bedeutet regulärer Matching Bei Ausdrücken wird die Groß-/Kleinschreibung nicht beachtet



4. Standort-URI-Übereinstimmungsregeln

Wenn Nginx eine Anfrage erhält, fängt es den URI-Teil der Anfrage ab und sucht nach allen in der Standortanweisung definierten URI-Übereinstimmungsmustern. Im Servermodul können mehrere Standortanweisungen definiert werden, um unterschiedliche URL-Anfragen und die URI-Übereinstimmungsmuster mehrerer unterschiedlicher Standortkonfigurationen abzugleichen. Das allgemeine Übereinstimmungsprinzip lautet: Zuerst das normale Zeichenfolgenmuster abgleichen und dann das reguläre Muster abgleichen. Nur der URI-Teil wird erkannt. Die Anfrage lautet beispielsweise: /test/abc/user.do?name=xxxx

Nachdem eine Anfrage eingegangen ist, gleicht Nginx die Anfrage wie folgt ab:

1> ob es etwas gibt, das mit = Exakte Übereinstimmung beginnt, wie zum Beispiel: location = /test/abc/user.do { … }

2> Suchen Sie dann nach dem Prinzip der maximalen Präfixe Standorte, Letzteres wird abgeglichen
* Standort /test/ { … }

* Standort /test/abc { … }



3> Nach dem Abgleich eines gemeinsamen Formats wird die Suche nicht beendet, sondern der aktuelle Abgleich wird vorübergehend gespeichert Ergebnisse und sucht weiterhin nach regulären Übereinstimmungsmustern.

4> Definierte Reihenfolge, normale Übereinstimmungsmuster jedoch nicht

5> Wenn keine reguläre Übereinstimmung gefunden wird, ist das zwischengespeicherte Ergebnis in 3 das endgültige Übereinstimmungsergebnis
6> Wenn keine Übereinstimmung gefunden wird, wird 404 zurückgegeben

5. Der Unterschied zwischen exaktem Matching und Fuzzy-Matching

location =/ { … } Der Unterschied zwischen location / { … }:

* Ersteres ist ein exakter Match und antwortet nur auf /xxx- oder /xxx/xxxx-Anfragen wird nicht in Form eines Präfixes abgeglichen * Letzteres gilt: Solange der Anfrage ein / vorangestellt ist, wird sie abgeglichen. Zum Beispiel: /abc, /test/abc, /test/abc/aaaa

6. Regulärer und nicht regulärer Abgleich

1> Ort ~ /test/.+.jsp$ { … }: Regulärer Abgleich , unterstützte Standard-Syntax für reguläre Ausdrücke. 2> Ort ^~ / { … }: ^~ bedeutet, den regulären Abgleich zu deaktivieren. Wenn nach diesem gewöhnlichen Abgleichsmuster gesucht wird, wird nicht mehr nach dem regulären Abgleichsmuster gesucht.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

...

http {

  ...

  server {

    listen    80;

    server_name localhost;

 

    location / {

      root  html;

      index index.html index.htm;

      # deny all; 拒绝请求,返回403

      # allow all; 允许请求

    }

 

    location /abc {

      deny all;

    }

 

    location ~ /.+\.jsp$ {

      proxy_pass http://location:9090;

    }

 

    # 匹配所有/test路径下的jsp文件

    location ~ /test/.+\.jsp$ {

      proxy_pass http://localhost:8080;

    }

 

    # 定义各类错误页

    error_page 404 /404.html

 

    error_page  500 502 503 504 /50x.html;

    location = /50x.html {

      root  html;

    }

 

    # @类似于变量定义

    # error_page 403 http://blog.csdn.net; #这种定义不允许,需求利用@定义临时变量来实现

    error_page 403 @page403;

    location @page403 {

      proxy_pass http://blog.csdn.net;

    }

  }

}

Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas sind die URI-Abgleichsregeln der Nginx-Standortrichtlinie?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So erlauben Sie den externen Netzwerkzugriff auf den Tomcat-Server So erlauben Sie den externen Netzwerkzugriff auf den Tomcat-Server Apr 21, 2024 am 07:22 AM

So erlauben Sie den externen Netzwerkzugriff auf den Tomcat-Server

Was sind die Start- und Stoppbefehle von Nginx? Was sind die Start- und Stoppbefehle von Nginx? Apr 02, 2024 pm 08:45 PM

Was sind die Start- und Stoppbefehle von Nginx?

So führen Sie thinkphp aus So führen Sie thinkphp aus Apr 09, 2024 pm 05:39 PM

So führen Sie thinkphp aus

Was sind die Unterschiede zwischen Tomcat und Nginx? Was sind die Unterschiede zwischen Tomcat und Nginx? Dec 27, 2023 pm 05:07 PM

Was sind die Unterschiede zwischen Tomcat und Nginx?

Willkommen bei Nginx! Wie kann ich es lösen? Willkommen bei Nginx! Wie kann ich es lösen? Apr 17, 2024 am 05:12 AM

Willkommen bei Nginx! Wie kann ich es lösen?

So registrieren Sie phpmyadmin So registrieren Sie phpmyadmin Apr 07, 2024 pm 02:45 PM

So registrieren Sie phpmyadmin

So stellen Sie das NodeJS-Projekt auf dem Server bereit So stellen Sie das NodeJS-Projekt auf dem Server bereit Apr 21, 2024 am 04:40 AM

So stellen Sie das NodeJS-Projekt auf dem Server bereit

So lösen Sie das Nginx-Problem beim Zugriff auf die Website So lösen Sie das Nginx-Problem beim Zugriff auf die Website Apr 02, 2024 pm 08:39 PM

So lösen Sie das Nginx-Problem beim Zugriff auf die Website

See all articles