You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

未重启Nginx时恢复误删的无扩展名content配置文件求助

恢复误删的Nginx配置文件(未重启Nginx)

从Nginx进程内存提取配置

Nginx启动后会把配置加载到内存,哪怕原文件删除,进程里还可能保留着相关内容,试试以下步骤:

  • 先找到Nginx主进程PID:
    ps aux | grep nginx | grep master
    
  • 将进程内存转储为core文件:
    gcore <你的PID>
    
  • 从core文件中过滤可读文本,查找和content相关的配置片段:
    strings core.<你的PID> | grep -A 20 -B 5 "content"
    
    要是记得配置里的关键词(比如域名、location规则),直接替换content搜索效率更高。

扫描系统临时文件与文件系统缓存

  • 检查Nginx默认缓存目录/var/cache/nginx,排查是否有配置残留:
    find /var/cache/nginx -type f -exec strings {} \; | grep -i "content"
    
  • 用debugfs查找已删除文件(注意:需卸载对应分区或用Live CD启动,避免损坏文件系统):
    1. 卸载配置所在分区(比如/etc/nginx在根分区,就得用Live系统启动操作)
    2. 列出已删除文件并筛选content:
      debugfs -R 'lsdel' /dev/sdaX | grep content
      
    3. 找到对应inode编号后恢复文件:
      debugfs -R 'dump <inode编号> /root/recovered_content' /dev/sdaX
      

检查系统自动备份或版本控制

  • 查看/etc/nginx目录下是否有RPM包更新留下的备份文件:
    ls -la /etc/nginx | grep -E "\.rpm(new|save)"
    
  • 要是之前用Git等工具管理过配置,直接从仓库拉取即可。

反向推导配置(最后手段)

如果以上方法都无效,只能根据当前Nginx运行状态重新编写配置:

  • 用nginx -V查看编译参数,确认默认配置路径和include规则
  • 查看Nginx当前监听的端口:
    netstat -tulpn | grep nginx
    
  • 结合站点的响应内容、跳转规则,回忆之前的配置逻辑,写完后用nginx -t验证配置合法性,没问题就重载Nginx:
    nginx -s reload
    

内容的提问来源于stack exchange,提问作者Mike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 15:57:37