從 /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;
    }
}

為我下載的文件提供服務量子位元流HTTP 協定上的 docker 容器。但是,我得到了404 未找到當我訪問/torrent/或時出錯/torrent/some_folder/some_name.some_extension

如果重要的話,儘管網路伺服器是由安裝者安裝的,但這些都具有rw-r--r--許可並歸其所有。docker_qbit:docker須藤呃。

答案1

發生的情況是 NGINX 使用者無權遍歷您在別名中指定的目錄。

您的要求表明我們無法更改目標目錄的權限。

我看到的唯一解決方案是將主要nginx(www-data)使用者新增到docker群組中。這樣網路伺服器應該能夠存取指定的目錄而不改變其權限。

如果 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

相關內容