Heim >Backend-Entwicklung >PHP-Tutorial >Nginx – mehrere Fragen zum Standortmuster
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>
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>
Konfigurieren Sie es so auf dem Hauptserver:
<code>server { listen 80; .... location /doc { proxy_pass http://localhost:8000/; } } </code>
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/
<code>location /doc/ { proxy_pass http://localhost:8000/; } </code>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? /
Die erste Frage ist, ob meine Standortkonfiguration so ist:
<code>location /doc { alias /home/user/doc; } </code>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
<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>Konfigurieren Sie es so auf dem Hauptserver:
<code>server { listen 80; .... location /doc { proxy_pass http://localhost:8000/; } } </code>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
<code>location /doc/ { proxy_pass http://localhost:8000/; } </code>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