Mik*_*ito 3 nginx reverse-proxy static-files http-status-code-403
我正在尝试通过 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;
}
}
Run Code Online (Sandbox Code Playgroud)
访问任何随机页面(包括假定的子目录)正确代理节点应用程序。但是,对于任何现有静态目录的根 / 和根,则为 403。
有任何想法吗?
那是因为目录存在,因此try_files检查
try_files $uri $uri/ @proxy;
Run Code Online (Sandbox Code Playgroud)
成功。但是没有目录索引文件(通常index.html,请参阅index),并且autoindex也没有打开(请参阅autoindex)。
根据您想要发生的情况,请考虑以下选项:
始终将目录传递给后端。删除$uri/从try_files做它,即:
location /
root /var/www/domain.tld/public;
try_files $uri @proxy;
}
Run Code Online (Sandbox Code Playgroud)通过以下方式检查特定的索引文件try_files(如果找不到,请求将转到后端):
location /
root /var/www/domain.tld/public;
try_files $uri $uri/index.html @proxy;
}
Run Code Online (Sandbox Code Playgroud)启用autoindex:
location /
root /var/www/domain.tld/public;
try_files $uri $uri/ @proxy;
autoindex on;
}
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
8178 次 |
| 最近记录: |