Я пытаюсь обслуживать приложение узла через nginx, но сначала пытаюсь обслужить статические файлы, которые могут находиться в /public
папка. У меня столько работы - но при доступе domain.tld/
или индекс статических папок, я получаю 403; directory index of "/var/www/domain.tld/" is forbidden
. Все разрешения кажутся правильными, поэтому я немного запутался.
Это мой серверный блок;
server {
server_name domain.tld;
location / {
root /var/www/domain.tld/public;
try_files $uri $uri/ @proxy;
access_log off;
}
location @proxy {
proxy_pass http://127.0.0.1:3000;
}
}
Доступ к любой случайной странице (включая предполагаемые подкаталоги) правильно передает прокси в приложение узла. Однако в случае корня / и корня любого существующего статического каталога 403.
Любые идеи?
Это потому, что каталог существует, и поэтому try_files
чек
try_files $uri $uri/ @proxy;
удается. Но нет файла индекса каталога (обычно index.html
, видеть индекс), и autoindex
тоже не включается (см. автоиндекс).
В зависимости от того, что вы хотите, рассмотрите следующие варианты:
Всегда передавайте каталоги в серверную часть. удалять $uri/
из try_files
сделать это, то есть:
location /
root /var/www/domain.tld/public;
try_files $uri @proxy;
}
Проверьте конкретный индексный файл через try_files
(и запрос отправится на бэкэнд, если он не найден):
location /
root /var/www/domain.tld/public;
try_files $uri $uri/index.html @proxy;
}
включить autoindex
:
location /
root /var/www/domain.tld/public;
try_files $uri $uri/ @proxy;
autoindex on;
}