Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So konfigurieren Sie Nginx an mehreren Standorten

So konfigurieren Sie Nginx an mehreren Standorten

王林
王林nach vorne
2023-05-17 22:25:452602Durchsuche

Vorwort

Die Konfiguration mehrerer Standorte unter dem Nginx-Server führt je nach Pfadzuordnung zu unterschiedlichen Verarbeitungen.

nginx häufig verwendete reguläre Ausdrücke

Grammatikregeln: Ort [=|~|~*|^~] /uri/ { … }

  • = Der Anfang bedeutet: genaue Übereinstimmung.

  • ^~ Der Anfang bedeutet: Es unterscheidet zwischen Groß- und Kleinschreibung und beginnt mit etwas.

  • ~ Der Anfang bedeutet: Groß-/Kleinschreibung beachtender regulärer Vergleich. Der Anfang von

  • ~* bedeutet: regulärer Abgleich ohne Berücksichtigung der Groß- und Kleinschreibung.

  • !~ und !~* repräsentieren jeweils: Groß-/Kleinschreibung berücksichtigende Nichtübereinstimmung und Groß-/Kleinschreibung berücksichtigende Nichtübereinstimmung reguläre Übereinstimmung.

  • / bedeutet: Universelles Matching, jede Anfrage wird gematcht.

Bei mehreren Standortkonfigurationen ist die Übereinstimmungsreihenfolge (nicht überprüft):

Erste Übereinstimmung =, zweitens Übereinstimmung ^~, zweitens reguläre Übereinstimmung in der Reihenfolge in der Datei und schließlich übergeben an / universell passend. Wenn ein Abgleich erfolgreich ist, wird der Abgleich gestoppt und die Anfrage gemäß den aktuellen Abgleichsregeln verarbeitet.

Tatsächliche Messung

server {
    listen       80;
    listen  [::]:80;
    server_name  location.test.com;

    access_log  /var/log/nginx/location.host.access.log  main;

    #*********************注意多个location通常按精确的放前面,模糊大范围的放后面,nginx先找= ******************************
    location = /login.html {#精确匹配 /login
	root /usr/share/nginx/html/test-equal;#请求/login.html相当于寻找资源/usr/share/nginx/html/test-equal/login.html
    }
    location ^~ /prefix/ {#区分大小写且以/prefix/开头
	root /usr/share/nginx/html/test-prefix;#root代表根目录,请求/prefix/prefix.html相当于寻找资源/usr/share/nginx/html/test-prefix/prefix/prefix.html 
    }
    location ~ \.(png|jpg)$ {#不区分大小写且以.png或.jpg结尾
	root /usr/share/nginx/html/test-suffix;#请求/suffix/a.png相当于寻找资源/usr/share/nginx/html/test-suffix/suffix/a.png
    }
    location ^~ /jd/ {# 区分大小写且以/jd/开头
	proxy_pass https://www.jd.com/;#proxy_pass  此处的url以/结尾,则nginx会取掉location部分再转发,例如,请求/jd/电器?name=1 则会转发到https://www.jd.com/电器?name=1
    }
    location ^~ /s {# /会匹配到所有的
	proxy_pass https://www.baidu.com;#proxy_pass  此处的url没有以/结尾,则匹配到的地址全部拼接到代理后的地址,例如,请求/s?name=1 则会转发到https://www.baidu.com/s?name=1
    }
    location  / {# 会返回index.html
	root /usr/share/nginx/html;
	index index.html;	
    }  
}

Bemerkungen

Der Unterschied zwischen Root und Alias ​​unter Standort:

Beispiel:

Client-Anfrage: http://localhost:8080/user/info/a.txt

nginx, wenn konfiguriert mit root: Nginx sucht nach Ressourcen: /home/html/user/info/a.txt

location ^~ /user {<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E-->
root /home/html;#此处可以不以/结尾
}

nginx Bei Konfiguration mit Alias: Nginx sucht nach Ressourcen: /home/html/info/a.txt

location ^~ /user {<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E-->
alias /home/html/;#此处以/结尾
}

Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie Nginx an mehreren Standorten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen