12

Я довольно новичок в конфигах 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"

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

1 ответ1

19

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .