DAY007 – nginx 静态根目录配置错误

举报
yd_287083129 发表于 2026/10/30 10:00:46 2026/10/30
【摘要】 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)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。