403 Запрещено обслуживать статические файлы из общей папки VirtualBox с помощью nginx (гостевая Ubuntu 10.04LTS, хост Windows 7)

Я работаю над локальной ВМ для разработки и пытаюсь проверить работу моего сайта с gunicorn и nginx в качестве обратного прокси-сервера только для статических ресурсов. Сайт загружает минус статические ресурсы user nginx; в nginx.conf. Попытка загрузить статический ресурс по отдельности выявляет ошибку 403 Forbidden.

Для фона. Статические ресурсы находятся в общей папке в /media/sf_work, Все файлы принадлежат root:vboxsf (VirtualBox по умолчанию). Моя учетная запись пользователя в системе была добавлена ​​в vboxsf группа, и у меня есть полный доступ к общей папке.

Для сравнения я попытался изменить пользователя nginx.conf на мою учетную запись. В этом случае статические файлы загрузились, но сама домашняя страница выдает ошибку 403 Forbidden. Итак, я попытался добавить nginx пользователь к vboxsf группа, но тогда все выдает 403 Запрещенную ошибку. После дальнейшего исследования кажется, что если пользователь nginx.conf входит в какую-либо группу, это приводит к 403 Запрещено.

Есть идеи, что здесь может происходить?

ОБНОВИТЬ

Итак, проблема с возвратом 403 главной страницы при использовании моей учетной записи пользователя в качестве пользователя nginx (единственный способ работы статических файлов) связана с отсутствием файла index.html в каталоге (список каталогов запрещен). Однако я, очевидно, не хочу, чтобы он перечислял каталог; он должен передать этот запрос доверенному лицу. Я использую следующее:

location / {
    try_files $uri $uri/ @proxy
}
location @proxy {
    proxy_pass_header Server;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Scheme $scheme;
    proxy_connect_timeout 10;
    proxy_read_timeout 10;
    proxy_pass http://127.0.0.1:8080;
}

Что-то не так с этим?

1 ответ

Решение

Итак, я наконец-то решил это. Во-первых, пользователь nginx.conf должен иметь доступ к общей папке, что означает, что мне пришлось использовать свою учетную запись. Я не доволен этим, но это всего лишь блок разработки, поэтому безопасность на самом деле не является проблемой.

Тогда была проблема с моим try_files директивы. Оглядываясь назад, это имеет смысл. Я прошу /и этот каталог действительно существует, но я не хочу, чтобы это совпадение. Так что мне действительно нужно было:

try_files $uri @proxy

Тогда все работало нормально.

Другие вопросы по тегам