Nginx: Statische Dateien aus einem bestimmten Verzeichnis herausgeben - eine Ebene zu tief

27437
Joe J

Ich bin ziemlich neu in Nginx-Configs. Ich habe Probleme mit einem ziemlich grundlegenden Problem. Ich möchte einige statische Dateien unter / doc (index.html, einige Bilder usw.) hosten. Die Dateien befinden sich in einem Verzeichnis namens / sites / mysite / proj / doc /.

Das Problem ist, dass nginx mit der folgenden nginx config nach einem Verzeichnis mit dem Namen "/ sites / mysite / proj / doc / doc" sucht. Möglicherweise kann dies behoben werden, indem das Stammverzeichnis auf / sites / mysite / proj / gesetzt wird. Ich möchte jedoch nicht andere (nicht statische) Assets im Verzeichnis proj / offenlegen. Aus verschiedenen Gründen kann ich das doc / -Verzeichnis nicht wirklich von dort verschieben, wo es ist.

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 und habe daher Schwierigkeiten, die Regel zu formulieren.

rewrite ^/doc/(.*)$ /$1 permanent; 

Ich habe auch ein funktionierendes Beispiel für das Hosten von Dateien aus einem Verzeichnis / sites / mysite / htdocs / static / beigefü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?

12

1 Antwort auf die Frage

19
Ronald Oldenburger

Sie könnten Alias ​​verwenden, einfach so:

location /doc { alias /sites/mysite/proj/doc/; } 

http://wiki.nginx.org/HttpCoreModule#alias

Es ist besser, "root" gemäß dem von Ihnen genannten Dokument zu verwenden (siehe "Wenn der Ort mit dem letzten Teil des Werts der Direktive übereinstimmt"). Rafael Xavier vor 7 Jahren 1
aktualisierter Doc-Link http://nginx.org/de/docs/http/ngx_http_core_module.html#alias LucScu vor 7 Jahren 0