Nginx: podawaj pliki statyczne z danego katalogu - o jeden poziom za głęboko

13

Jestem całkiem nowy w konfiguracjach nginx. Mam problem z dość podstawowym problemem. Chciałbym hostować niektóre pliki statyczne w katalogu / doc (index.html, niektóre obrazy itp.). Pliki znajdują się w katalogu o nazwie / sites / mysite / proj / doc /.

Problem polega na tym, że przy poniższej konfiguracji nginx, nginx próbuje poszukać katalogu o nazwie „/ sites / mysite / proj / doc / doc”. Być może można to naprawić, ustawiając katalog główny na / sites / mysite / proj /, ale nie chcę potencjalnie ujawniać innych (niestatycznych) zasobów w katalogu proj /. I z różnych powodów tak naprawdę nie mogę przenieść katalogu doc ​​/ z miejsca, w którym się znajduje.

Myślę, że istnieje sposób na użycie reguły Przepisz, aby rozwiązać tę sytuację, ale tak naprawdę nie rozumiem wszystkich części, więc mam trudności z sformułowaniem reguły.

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

Podałem również działający przykład hostowania plików z katalogu / sites / mysite / htdocs / static /.

> 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"

Czy ktoś ma jakieś pomysły na temat udostępniania tej statycznej treści?

Joe J
źródło

Odpowiedzi: