ОС = 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
директиве.