Betriebssystem = Debian 11
Ich habe die Standardeinstellung bearbeitetnginx(Version 1.18.0, installiert aus dem Debian-Repository) Konfiguration wie unten:
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;
}
}
um meine heruntergeladenen Dateien zu bedienen mitAbonnierenDocker-Container auf HTTP-Protokoll. Allerdings bekomme ich eine404 Nicht gefundenFehler, wenn ich entweder /torrent/
oder besuche /torrent/some_folder/some_name.some_extension
.
Falls wichtig, verfügen diese über rw-r--r--
die Berechtigung und sind Eigentum von, docker_qbit:docker
obwohl der Webserver von einemsudoäh.
Antwort1
Was passiert, ist, dass der NGINX-Benutzer nicht die Berechtigung hat, das Verzeichnis zu durchlaufen, das Sie in Ihrem Alias angegeben haben.
Aus Ihren Anforderungen geht hervor, dass wir die Berechtigungen für das Zielverzeichnis nicht ändern können.
Die einzige Lösung, die ich sehe, wäre, den Hauptbenutzer nginx
(www-data) zur docker
Gruppe hinzuzufügen. Auf diese Weise sollte der Webserver auf das angegebene Verzeichnis zugreifen können, ohne seine Berechtigung zu ändern.
Wenn der Standard-Nginx-Benutzer unter Debian 11 ist www-data
.
Wenn dies der Fall wäre, würde der entsprechende Befehl folgendermaßen aussehen:
usermod -a -G docker www-data
Dieser Befehl ändert den Benutzer „www-data“, indem er ihn zur Gruppe „Docker“ hinzufügt.
Um sicherzugehen, welcher Benutzer nginx ausführt, können Sie sich die Ausgabe dieses Befehls ansehen:
ps -eo user,comm | grep nginx
Sobald der Vorgang abgeschlossen ist, können Sie Nginx neu laden und prüfen, ob der Inhalt jetzt verfügbar ist.
systemctl reload nginx
Antwort2
Vielen Dank an alle. Das Problem wurde /
durch das Anhängen der Adresse an die alias
Direktive behoben.