Heim > Backend-Entwicklung > PHP-Tutorial > Nginx – mehrere Fragen zum Standortmuster

Nginx – mehrere Fragen zum Standortmuster

WBOY
Freigeben: 2016-08-29 08:50:55
Original
1266 Leute haben es durchsucht

Nachdem ich viele Informationen überprüft habe, verstehe ich immer noch einige Fragen nicht.

Die erste Frage ist, ob meine Standortkonfiguration so ist:

<code>location /doc {
    alias /home/user/doc;
}
</code>
Nach dem Login kopieren
Nach dem Login kopieren

Wenn ich dann auf http://localhost/doc/a.html zugreife, liest Nginx tatsächlich /home/usr/doc/a.html. Wenn ich auf http://localhost/docs/a.html oder sogar http://localhost/docsioajsfopajowejfasd zugreife, welche Datei versucht Nginx tatsächlich zu lesen?

Die zweite Frage ist, ob ich doc als Server konfiguriere und dann den Proxy umkehre.

<code>server {
    listen 8000;
    server_name doc;
    root /home/user/doc;
    
    index index.html index.htm index.nginx-debian.html;

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
    }
}
</code>
Nach dem Login kopieren
Nach dem Login kopieren

Konfigurieren Sie es so auf dem Hauptserver:

<code>server {
    listen 80;
    ....
    location /doc {
        proxy_pass http://localhost:8000/;
    }
    }
</code>
Nach dem Login kopieren
Nach dem Login kopieren

Wenn in dieser Konfiguration auf http://localhost/doc/ zugegriffen wird und die Indexdatei auf eine statische Datei verweist, wird die statische Datei zu 404 und der Browser versucht, http://localhost/js/xxx.js anstelle von http://localhost/doc/js/xxx.js abzurufen hinzugefügt, nachdem das Muster >wird/

Mit
<code>location /doc/ {
            proxy_pass http://localhost:8000/;
        }
</code>
Nach dem Login kopieren
Nach dem Login kopieren
gibt es kein Problem, aber wenn es sich um die Standortkonfiguration in der ersten Frage handelt, findet der Browser

korrekt. Das hat mich verwirrt. Welche Auswirkung hat das Hinzufügen von http://localhost/doc/js/xxx.js am Ende? Warum haben Alias ​​und Proxy_Pass unterschiedliche Ergebnisse? /

Antwortinhalt:

Ich habe viele Informationen überprüft, kann aber immer noch ein paar Fragen nicht beantworten.

Die erste Frage ist, ob meine Standortkonfiguration so ist:

<code>location /doc {
    alias /home/user/doc;
}
</code>
Nach dem Login kopieren
Nach dem Login kopieren
Wenn ich dann auf

zugreife, liest Nginx tatsächlich http://localhost/doc/a.html. Wenn ich auf /home/usr/doc/a.html oder sogar http://localhost/docs/a.html zugreife, welche Datei versucht Nginx tatsächlich zu lesen? http://localhost/docsioajsfopajowejfasd

Zweite Frage: Wenn ich doc als Server konfiguriere und dann den Proxy umkehre.

<code>server {
    listen 8000;
    server_name doc;
    root /home/user/doc;
    
    index index.html index.htm index.nginx-debian.html;

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
    }
}
</code>
Nach dem Login kopieren
Nach dem Login kopieren
Konfigurieren Sie es so auf dem Hauptserver:

<code>server {
    listen 80;
    ....
    location /doc {
        proxy_pass http://localhost:8000/;
    }
    }
</code>
Nach dem Login kopieren
Nach dem Login kopieren
Wenn in dieser Konfiguration auf

zugegriffen wird und die Indexdatei auf eine statische Datei verweist, wird die statische Datei zu http://localhost/doc/ und der Browser versucht, 404 anstelle von http://localhost/js/xxx.js abzurufen hinzugefügt, nachdem das Muster >wirdhttp://localhost/doc/js/xxx.js / Mit

gibt es kein Problem, aber wenn es sich um die Standortkonfiguration in der ersten Frage handelt, findet der Browser
<code>location /doc/ {
            proxy_pass http://localhost:8000/;
        }
</code>
Nach dem Login kopieren
Nach dem Login kopieren
korrekt. Das hat mich verwirrt. Welche Auswirkung hat das Hinzufügen von

am Ende? Warum haben Alias ​​und Proxy_Pass unterschiedliche Ergebnisse? http://localhost/doc/js/xxx.js

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage