DAY018 – nginx 静态 root 指向备份目录

举报
yd_287083129 发表于 2026/11/11 16:15:43 2026/11/11
【摘要】 故障场景故障现象:nginx health 与 API 正常,但门户首页返回 403,nginx root 指向了备份目录。服务器状态:server2:状态 INJECTED;开始时间 2026-07-31 05:00:11 +0800;影响范围 演练项目受影响,SSH 不受影响,非演练业务不应受影响。 排障过程 1. 看项目文档先看项目文档,了解本次演练环境的基本信息:nginx 程序:...

故障场景

故障现象:nginx health 与 API 正常,但门户首页返回 403,nginx root 指向了备份目录。

服务器状态:server2:状态 INJECTED;开始时间 2026-07-31 05:00:11 +0800;影响范围 演练项目受影响,SSH 不受影响,非演练业务不应受影响。

排障过程

1. 看项目文档

先看项目文档,了解本次演练环境的基本信息:

  • nginx 程序:/usr/sbin/nginx
  • systemd 服务:nginx.service
  • nginx 配置:/etc/nginx/sites-available/hermes-day018.conf
  • nginx 启用配置:/etc/nginx/sites-enabled/hermes-day018.conf
  • nginx 日志:/var/log/nginx/hermes-day018-access.log、/var/log/nginx/hermes-day018-error.log
  • 应用目录:/opt/hermes-drills/day018
  • API 程序:/opt/hermes-drills/day018/app/api.py
  • API 启动脚本:/opt/hermes-drills/day018/start-app.sh
  • API 日志:/opt/hermes-drills/day018/logs/api.log
  • 可执行场景套件:/home/monika/hermes-ops-drills/standard-scenario-suite.md

端口:

  • nginx:18080
  • API:127.0.0.1:18081

2. 实际 curl 本地端口确认 nginx 门户

curl -i 127.0.0.1:18080

返回 HTTP/1.1 403 Forbidden,Server 为 nginx/1.24.0 (Ubuntu),确认门户首页返回 403。

3. 403 报错大多为权限不足

应该先看 nginx 的错误日志。

4. 定位到备份目录

问题出在路径 /opt/hermes-drills/day018/public-backup/ 的权限,或者该目录下的首页文件有问题。检查发现该目录下没有任何文件。

5. 检查已应用站点的路径相关配置

问题在于 public-backup 目录下没有对应的首页文件 index.html。从 public-backup 的名称可知,这是一个网页备份目录,于是在项目目录中寻找实际项目文件。

6. 恢复业务

找到实际首页文件后,先备份之前的错误站点文件。虽然错误很简单,但这可以作为证据,后续用于寻找上一个修改此文件的人,方便找到导致这次事故的人。

不过首要任务是恢复业务:时间紧的话,复制完了就应该开始改正 conf 文件,修改源文件一个即可,链接文件相当于快捷方式。

改正后各接口都报 200,业务恢复了。

时间不紧、客流量不大,或者负载均衡的情况的话,可以先把证据记录下来,后续追责。

小结:403 排障日常小问题。

原文首发于个人博客:liujixiang.de5.net

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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