Nginx: обслуживать статические файлы из заданного каталога - на один уровень слишком глубоко

27291
Joe J

Я довольно новичок в конфигах nginx. У меня возникли сложности с довольно простой проблемой. Я хотел бы разместить некоторые статические файлы в / doc (index.html, некоторые изображения и т. Д.). Файлы находятся в каталоге / sites / mysite / proj / doc /.

Проблема в том, что с помощью конфигурации nginx, представленной ниже, nginx пытается найти каталог с именем "/ sites / mysite / proj / doc / doc". Возможно, это можно исправить, установив root в / sites / mysite / proj /, но я не хочу потенциально выставлять другие (нестатические) ресурсы в каталоге proj /. И по разным причинам я не могу переместить каталог doc / туда, где он находится.

Я думаю, что есть способ использовать правило переписывания для решения этой ситуации, но я не совсем понимаю все части, поэтому возникли некоторые трудности при формулировании правила.

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

Я также включил рабочий пример размещения файлов из каталога / 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" 

У кого-нибудь есть какие-нибудь идеи, как я могу использовать этот статический контент?

12

1 ответ на вопрос

19
Ronald Oldenburger

Вы можете использовать псевдоним, вот так:

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

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

Вместо этого лучше использовать `root` в соответствии с тем документом, на который вы ссылались (см." Когда location соответствует последней части значения директивы ") Rafael Xavier 7 лет назад 1
обновленная ссылка на документ http://nginx.org/en/docs/http/ngx_http_core_module.html#alias LucScu 7 лет назад 0

Похожие вопросы