OS = 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」に追加して変更します。
どのユーザーが nginx を実行しているかを確認するには、次のコマンドの出力を確認します。
ps -eo user,comm | grep nginx
完了したら、nginx をリロードして、コンテンツが利用可能かどうかを確認できます。
systemctl reload nginx
答え2
皆様、ありがとうございます。問題は、ディレクティブ/
内のアドレスの後に続く部分が省略されていましたalias
。