Heim  >  Artikel  >  Backend-Entwicklung  >  Konfigurationsmethode des Standorts in Nginx

Konfigurationsmethode des Standorts in Nginx

不言
不言Original
2018-07-07 16:30:243826Durchsuche

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/aMuss zurückgegeben werden /var/www/domain.com/a/index.html
2.www.domain.com/bMuss 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.

Nginx-Blockkonfigurationskonzept

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:

  1. 留空. 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.

  2. = 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.

  3. ~, 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.

  4. ~* steht für einen regulären Abgleich ohne Berücksichtigung der Groß-/Kleinschreibung.

  5. ^~ bedeutet, dass hier kein regelmäßiger Abgleich zu erwarten ist.

Die Reihenfolge, in der Nginx Standortblöcke verarbeitet

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:

  1. erste Übereinstimmung 前缀式 (d. h. die Konfiguration, bei der der optionale_Modifikator des Standorts leer ist).

  2. Nginx sucht dann anhand des URI nach der genau passenden Standortkonfiguration (d. h. der Konfiguration, bei der der optionale_Modifikator des Standorts =

    ist).
  3. Wenn es immer noch keine Übereinstimmung gibt, dann passen Sie zuerst die

    -Konfiguration an. Wenn eine Konfiguration gefunden wird, wird der Suchvorgang gestoppt und der Antwortinhalt wird direkt zurückgegeben. ^~

  4. Wenn keine Übereinstimmung gefunden wird, wird zuerst ein regulärer Abgleich unter Berücksichtigung der Groß-/Kleinschreibung und dann ein regulärer Abgleich ohne Berücksichtigung der Groß-/Kleinschreibung durchgeführt.

Einige Beispiele für die Nginx-Standortkonfiguration:

Nachdem wir so viele Theorien gelesen haben, ist es sinnlos, ohne konkrete Beispiele, die dies untermauern, also lasst uns Schauen Sie sich die spezifischen Konfigurationsbeispiele an:

location  = / {
  # = 等号配置符,只匹配 / 这个路由
}
location /data {
   # 留空配置,会匹配有 /data 开始的路由,后续有匹配会往下匹配。
}

Zwei sehr praktische Beispiele:

1. Einfache Bild-Hotlink-Verhinderung

location ^~ /img/ {
  # 注意 ^~ 配置,这里匹配到 /img/ 开始的话,直接就返回了。
}
2. Verbieten Sie für einen beschreibbaren Pfad die Ausführung von

oder php Schritten js

location ~* .(png|gif|ico|jpg|jpeg)$ {
  # 匹配以 png, gif, ico, jpg or jpeg 结尾的请求;这个通常用来设置图片的请求响应。 
}
Antwort auf die Frage

Schauen wir uns abschließend noch die Antwort auf die Frage an, sie kann etwa so lauten :

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!

Stellungnahme:
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