DAY007 – nginx 静态根目录配置错误
【摘要】 nginx health 正常,API 正常,但企业门户首页无法打开:站点根目录错配为 public-missing 空目录导致 403,改回 public 目录后恢复。
故障场景
故障现象:nginx health 正常,API 正常,但企业门户首页无法打开
服务器状态:
server2:状态 INJECTED;开始时间 2026-07-18 21:07:50 +0800;影响范围 练习项目局部不可用,SSH 不受影响。
排障过程
看项目文档
看本地首页和 health 实际情况
curl -v 127.0.0.1:18080
HTTP/1.1 403 Forbidden
Server: nginx/1.24.0 (Ubuntu)
首页返回 403 故障,一般是权限问题,先看 nginx 日志
directory index of "/opt/hermes-drills/day007/public-missing/" is forbidden
所以是这个目录出现权限问题:
/opt/hermes-drills/day007/public-missing/
此目录的各路径权限正常,但是目录下没有任何文件
namei -l /opt/hermes-drills/day007/public-missing/
cd /opt/hermes-drills/day007/public-missing/ && ls
查看 day007 目录下实际目录、文件
ls /opt/hermes-drills/day007/
app backups backup.sh data logs public public-missing run start-app.sh stop-app.sh
倒是有个 public 目录
这才是首页 html 文件
看看站点文件怎么写的
grep -C 5 -n -i -E "public|index" /etc/nginx/sites-enabled/hermes-day007.conf
server_name _;
access_log /var/log/nginx/hermes-day007-access.log;
error_log /var/log/nginx/hermes-day007-error.log info;
root /opt/hermes-drills/day007/public-missing;
index index.html;
location = /health {
access_log off;
return 200 "nginx ok\n";
}
看来是用错网页目录了
在 nginx 中,指定了具体的 html 文件而报错会显示 404 未找到文件,这次显示 403 是由于我们配置的是整个 public-missing 目录
修改站点 conf 为 public 目录
sudo nginx -t
sudo systemctl reload nginx
验证
本地访问首页正常
公网访问也没问题了
API 也没问题了
原文首发于个人博客:liujixiang.de5.net
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)