我正在尝试通过 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
检查成功。但是没有目录索引文件(通常
index.html
参见index),autoindex
也没有打开(参见autoindex)。根据您想要发生的情况,考虑以下选项:
始终将目录传递给后端。删除
$uri/
以try_files
执行此操作,即:通过以下方式检查特定的索引文件
try_files
(如果找不到,请求将转到后端):启用
autoindex
: