Nginx 1.16.1 try_files配置异常引发403 Forbidden问题排查
Nginx 1.16.1 try_files 重定向异常问题
环境与配置
- Nginx版本:1.16.1
- 核心配置:
location / { root /home/nginx/html/dist/; try_files $uri $uri/ /index.html; } location = /index.html { root /home/nginx/html/dist/; }
未手动配置index指令,使用默认值index.html。
问题场景与现象
- 在路径
/home/nginx/html/dist/home/nginx/html/dist/下创建index.html文件; - 浏览器访问
127.0.0.1/home/nginx/html/dist/时,Nginx会拼接路径:root路径 + URI + 默认index文件,即/home/nginx/html/dist/home/nginx/html/dist/index.html; - 预期行为:当该拼接路径不存在
index.html时,应重定向到/home/nginx/html/dist/index.html; - 实际结果:始终返回403 Forbidden错误。
源码调试排查
逐行调试Nginx源码后发现:
- 触发重定向逻辑时,对应分支中
tf->names值为/index.html(不为空); - 本该执行重定向相关代码逻辑,但实际始终进入返回403的分支,原因是
ngx_http_static_module打开文件失败; - 怀疑是版本bug:当
tf->names不为空时,重定向逻辑未正常触发。
内容的提问来源于stack exchange,提问作者Drakeeagle
相关产品推荐
相关产品推荐

