404 при обслуживании статических файлов, принадлежащих другому пользователю из /opt

404 при обслуживании статических файлов, принадлежащих другому пользователю из /opt

ОС = Debian 11

Я отредактировал defaultnginx(версия 1.18.0, установлена ​​из репозитория Debian) конфигурация выглядит следующим образом:

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;

    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
            try_files $uri $uri/ =404;
    }

    location /torrent/ {
            autoindex on;
            alias /opt/docker/qbittorrent/downloads;
    }
}

для обслуживания моих загруженных файловqbittorentdocker-контейнер на HTTP-протоколе. Однако я получаю404 Не Найденоошибка при посещении /torrent/или /torrent/some_folder/some_name.some_extension.

Если важно, они имеют rw-r--r--разрешение и принадлежат docker_qbit:dockerхотя веб-сервер установленсудоэ-э.

решение1

Проблема в том, что у пользователя NGINX нет прав на просмотр каталога, указанного вами в псевдониме.

В ваших требованиях указано, что мы не можем изменить разрешения для целевого каталога.

Единственное решение, которое я вижу, это добавить основного nginxпользователя (www-data) в dockerгруппу. Таким образом, веб-сервер сможет получить доступ к указанному каталогу, не меняя его разрешения.

Если пользователь nginx по умолчанию в Debian 11 — www-data.

Если предположить, что это так, то команда для этого будет выглядеть следующим образом:

usermod -a -G docker www-data

Эта команда изменит пользователя «www-data», добавив его в группу «docker».

Чтобы убедиться, какой пользователь запускает nginx, вы можете посмотреть вывод этой команды:

ps -eo user,comm | grep nginx

После завершения вы можете перезагрузить nginx и проверить, доступен ли теперь контент.

systemctl reload nginx

решение2

Спасибо всем. Проблема была пропущена /после адреса в aliasдирективе.

Связанный контент