Добрый день, уважаемые специалисты!
Есть сайт с учебными курсами, работающий в связке Nginx и Node.js.
Nginx раздает статику из двух каталогов:
public в котором лежат стили, скрипты и т.д. и каталог
data, в котором лежат сами материалы уроков (видеолекции, слайды и т.д.) и которые должны быть доступны только после авторизации.
Возникло несколько проблем:
1. Если удалить из сервера Node.js строки
app.use(express.static(path.join(__dirname, 'public'))),
то есть удалить раздачу статики через Node.js, то запрос на файлы возвращается с ошибкой 404. Хотя, как я понимаю, они должны раздаваться Nginx и не зависить от ноды?
2. Каким образом настроить конфиг Nginx, чтобы закрыть файлы от прямого скачивания?
Пробовал в конфиге писать следующее,
location /files {
internal;
alias /data;
}
Однако в этот случае ответ приходит либо 404, либо (canceled) и заголовком Provisional headers are shown.
Добавление
add_header 'Access-Control-Allow-Origin' "$http_origin"
тоже не помогает.
Заранее благодарен за помощь!
PS. Полный когфиг Nginx
server {
server_name 127.0.0.1;
root D:/Server/local/sites/local;
location / {
proxy_pass http://127.0.0.1:3000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location = /favicon.ico {
access_log off;
log_not_found off;
}
location /public {
allow all;
}
location /files {
internal;
alias /data;
}
error_log D:/Server/nginx/logs/local_error.log;
access_log D:/Server/nginx/logs/local_access.log;
}