操作系统 = Debian 11
我已经编辑了默认nginx(版本 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;
}
}
为我下载的文件提供服务qbittorentHTTP 协议上的 Docker 容器。但是我得到了一个404 未找到当我访问/torrent/
或时出错/torrent/some_folder/some_name.some_extension
。
如果重要,则这些内容已获得rw-r--r--
许可并归docker_qbit:docker
尽管网络服务器是由须藤呃。
答案1
发生的情况是 NGINX 用户没有权限遍历您在别名中指定的目录。
您的要求表明我们无法更改目标目录的权限。
我看到的唯一解决方案是将主nginx
(www-data) 用户添加到该docker
组。这样,Web 服务器应该能够访问指定的目录而无需更改其权限。
如果 Debian 11 上的默认 nginx 用户是www-data
。
假设情况确实如此,执行此操作的命令如下:
usermod -a -G docker www-data
该命令将通过将用户“www-data”添加到组“docker”来修改用户“www-data”。
要确定哪个用户正在运行 nginx,您可以查看此命令的输出:
ps -eo user,comm | grep nginx
完成后,您可以重新加载 nginx 并查看内容是否可用。
systemctl reload nginx
答案2
感谢大家。问题被省略了,位于指令/
中的地址后面alias
。