Eine Datei direkt an Ort und Stelle mit nginx bereitstellen?

1

Ich habe verschiedene Dateien im Verzeichnis '/ var / www / something'. Das normale Stammverzeichnis meines Nginx-Servers ist '/ var / www / html'.

Jetzt möchte ich nur die Datei '/var/www/something/file.exp' als http://someserver.org/ecos/file.exp bereitstellen .


Meine aktuelle Konfiguration verwendet so etwas:

location =/ecos/file.exp {
   rewrite '^/ecos/(.*)$' '/$1' last;
   root /var/www/something;
}

, aber es funktioniert nicht.

Was mache ich falsch?

user1861174
quelle

Antworten:

0

Sie haben die Rewrite zwicken zu verwenden break, nicht last:

location = /ecos/file.exp {
   '^ / ecos /(.*)$' '/ $ 1' letzte Pause umschreiben ;
   root / var / www / something;
}

Von dem, was ich verstehe:

Mit breaksucht der Server die Datei unter Verwendung des Stammverzeichnisses am aktuellen Speicherort:

location = /ecos/file.exp {
   ...
   root / var / www / something;
}

Mit lastsetzt der Server die Verarbeitung fort und verwendet den neu geschriebenen Speicherort:

location = / {
   ...
   root / einige / andere / root;
}

Siehe auch: nginx url rewriting: Unterschied zwischen break und last

chue x
quelle
Schätze, es sollte seinalias var/www/something/file.exp;
Alexey Ten
Wenn ich die Lösung aus der Antwort probiere, erhalte ich eine verbotene Nachricht, wenn ich ' someserver.org/ecos/file.exp ' anfordere .
user1861174
Ich habe mir die Zugriffsberechtigungen in meinem Dateisystem angesehen und sie so geändert, dass sie mit denen in '/ var / www / html' übereinstimmen. Seitdem erhalte ich eine Nachricht 404 nicht gefunden
user1861174