从 /opt 提供其他用户拥有的静态文件时出现 404

从 /opt 提供其他用户拥有的静态文件时出现 404

操作系统 = 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

相关内容