Ich bin ziemlich neu in Nginx-Konfigurationen. Ich habe einige Schwierigkeiten mit einem ziemlich grundlegenden Problem. Ich möchte einige statische Dateien unter / doc hosten (index.html, einige Bilder usw.). Die Dateien befinden sich in einem Verzeichnis namens / sites / mysite / proj / doc /.
Das Problem ist, dass nginx mit der folgenden nginx-Konfiguration versucht, nach einem Verzeichnis mit dem Namen "/ sites / mysite / proj / doc / doc" zu suchen. Möglicherweise kann dies behoben werden, indem Sie das Stammverzeichnis auf / sites / mysite / proj / setzen, aber ich möchte möglicherweise keine anderen (nicht statischen) Assets im Verzeichnis proj / verfügbar machen. Und aus verschiedenen Gründen kann ich das Verzeichnis doc / nicht wirklich dorthin verschieben, wo es sich befindet.
Ich denke, es gibt eine Möglichkeit, eine Rewrite-Regel zu verwenden, um diese Situation zu lösen, aber ich verstehe nicht wirklich alle Teile, so dass ich Schwierigkeiten habe, die Regel zu formulieren.
rewrite ^/doc/(.*)$ /$1 permanent;
Ich habe auch ein funktionierendes Beispiel für das Hosten von Dateien aus einem / sites / mysite / htdocs / static / -Verzeichnis eingefügt.
> vim locations.conf
location /static {
root /sites/mysite/htdocs/;
access_log off;
autoindex on;
}
location /doc {
root /sites/mysite/proj/doc/;
access_log on;
autoindex on;
}
2011/11/19 23:49:00 [error] 2314#0: *42 open() "/sites/mysite/proj/doc/doc" failed (2: No such file or directory), client: 100.100.100.100, server: , request: "GET /doc HTTP/1.1", host: "myhost.com"
Hat jemand eine Idee, wie ich diesen statischen Inhalt bereitstellen könnte?
root
stattdessen das Dokument zu verwenden, auf das Sie sich bezogen haben (siehe "Wenn der Ort mit dem letzten Teil des Werts der Direktive übereinstimmt")