Dieser Artikel stellt hauptsächlich die Konfigurationsmethode von Location in Nginx vor. Er hat einen gewissen Referenzwert. Jetzt kann ich ihn mit allen teilen, die ihn benötigen.
今天有一位同学问到 Nginx 的站点多路径匹配的问题?
1.www.domain.com/a
Muss zurückgegeben werden/var/www/domain.com/a/index.html
2.www.domain.com/b
Muss zurückgegeben werden/var/www/domain.com/b/index.html
Wie konfiguriere ich Nginx, um es effektiv zu machen?
Um dieses Problem zu lösen, besteht die erste Reaktion darin, es direkt mit der Nginx-Standortanweisung zu lösen. Bevor wir jedoch die Antwort geben, wollen wir zunächst die Grundlagen der Nginx-Standortanweisung verstehen.
In der Nginx-Konfigurationsdatei werden normalerweise zwei häufig verwendete Blöcke (Blöcke) für Einstellungen verwendet:
1 Serverbereichsblock
2 .Localtion Block
Der Block bezieht sich hier auf Block. Sie können ihn sogar als den Konfigurationsinhalt zwischen dem folgenden Paar von {}
verstehen.
Der Sever-Block dient hauptsächlich der Konfiguration des realen Hosts, z. B. der Konfiguration des Domänennamens, der IP, des Ports und anderer Inhalte des Hosts. Natürlich können wir in einer Nginx-Konfigurationsdatei die Konfiguration mehrerer Sever-Blöcke angeben.
Der Location-Block befindet sich innerhalb des Sever-Blocks und ist in Konfigurationen für verschiedene Pfade und Anforderungen unterteilt. Da eine Site normalerweise viele URIs enthält, können Sie in den Einstellungen des Standortblocks auch mehrere Standortkonfigurationen schreiben.
Werfen wir zunächst einen Blick auf die grundlegende Syntax der Standortkonfiguration:
location optional_modifier location_match { # 这个 {} 里面的配置内容就是一个区块 Block }
Die oben genannten optional_modifier
Konfigurationselemente können reguläre Ausdrücke verwenden. Die am häufigsten verwendeten sind wie folgt:
留空
. Ja, das Feld leer zu lassen ist auch eine Möglichkeit, es festzulegen. Wenn das Feld leer bleibt, gibt die Konfiguration an, dass der Anforderungspfad mit location_match
beginnt.
=
Das Gleichheitszeichen ist sehr leicht zu verstehen: Es bedeutet, dass der Anforderungspfad genau dem Wert des folgenden location_match
entspricht Das erste Element ist leer.
~
, Piaohao (beachten Sie, dass es sich um Piaohao handelt, das auf Englisch eingegeben wird) stellt einen regulären Vergleich dar, bei dem die Groß-/Kleinschreibung beachtet wird.
~*
steht für einen regulären Abgleich ohne Berücksichtigung der Groß-/Kleinschreibung.
^~
bedeutet, dass hier kein regelmäßiger Abgleich zu erwarten ist.
Oben werden die Grundkonzepte und allgemeinen Konfigurationen der Standortanweisung erläutert. Werfen wir einen Blick auf die Reihenfolge, in der der Standort wirksam wird! Dies ist auch sehr wichtig:
Nachdem jede Anfrage bei Nginx eingegangen ist, wählt Nginx die beste Übereinstimmung für den Standort aus, um zu antworten. Der spezifische Verarbeitungsprozess besteht darin, sie einzeln mit der Konfiguration des Standorts zu vergleichen. Dieser Schritt kann in die folgenden Schritte unterteilt werden:
erste Übereinstimmung 前缀式
(d. h. die Konfiguration, bei der der optionale_Modifikator des Standorts leer ist).
Nginx sucht dann anhand des URI nach der genau passenden Standortkonfiguration (d. h. der Konfiguration, bei der der optionale_Modifikator des Standorts =
-Konfiguration an. Wenn eine Konfiguration gefunden wird, wird der Suchvorgang gestoppt und der Antwortinhalt wird direkt zurückgegeben. ^~
location = / { # = 等号配置符,只匹配 / 这个路由 }
location /data { # 留空配置,会匹配有 /data 开始的路由,后续有匹配会往下匹配。 }
Zwei sehr praktische Beispiele:
1. Einfache Bild-Hotlink-Verhinderunglocation ^~ /img/ { # 注意 ^~ 配置,这里匹配到 /img/ 开始的话,直接就返回了。 }
oder php
Schritten js
location ~* .(png|gif|ico|jpg|jpeg)$ { # 匹配以 png, gif, ico, jpg or jpeg 结尾的请求;这个通常用来设置图片的请求响应。 }
rrree
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website. Verwandte Empfehlungen:Verwenden Sie Nginx, um mehrere Webserver auf einem Server bereitzustellen
Das obige ist der detaillierte Inhalt vonKonfigurationsmethode des Standorts in Nginx. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!