Почему nginx выдает 403, хотя у пользователя, под которым работает nginx, с правами доступа всё нормально
Я хочу сделать веб-доступ к моему HDD диску, который был примонтирован в директорию /home/hdd/storage
, веб-досутп будет выдан к дочерней директории public
. Вот права и владельцы этой директории и родительских:
/home: root:root 755
/home/hdd: hdd:hdd 755
/home/hdd/storage: hdd:hdd 755
/home/hdd/storage/public: hdd:hdd 775
Пользователь www-data
, от имени которого работает nginx
находится в группе hdd
.
Вот моя конфигурация nginx
для виртуального сервера:
server {
listen 443 ssl;
server_name xxx.net;
error_page 404 /error/404;
error_page 403 /error/403;
ssl_certificate /etc/ssl/xxx.net/certificate.crt;
ssl_certificate_key /etc/ssl/xxx.net/private.key;
allow all;
root /home/www-data/xxx.net;
location /hdd {
alias /home/hdd/storage/public;
autoindex on;
}
}
В директорию /home/hdd/storage/public
я для проверки закинул файл dlna.apk
с правами 664
и с владельцем hdd:hdd
:
merqury@merqury-server:~$ sudo -u www-data ls -l /home/hdd/storage/public/dlna.apk
-rw-rw-r-- 1 hdd hdd 5153618 Aug 20 13:01 /home/hdd/storage/public/dlna.apk
При запросе на https://xxx.net/hdd
я получаю содержимое директории в котором отображается dlna.apk
, но при попытке его загрузить меня перенаправляет на страницу 403.
Другие решения пробовал, ничего не помогало: SELinux
у меня нет, apparmor
отключен, ACL
у меня не установлен, вот глобальная конфигурация:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
error_log /var/log/nginx/error.log;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
}
http {
sendfile on;
tcp_nopush on;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
gzip on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
В error.log
нет логов связанных с 403