1Panel OpenResty 无限重启排查记

本文摘要
最崩溃的不是网站挂了,而是1Panel里的OpenResty一直“重启中”,你连后台网站设置都进不去,想修都没入口。很多人这时候先怀疑端口、镜像、配置,结果越查越乱。真正把容器拖进死循环的,往往只是一个早被忽略的证书文件:配置还在,文件没了,Nginx连启动资格都没有。这篇排查记最有价值的,不是报错本身,而是当面板也失灵时,怎么绕开它把服务先救回来。你猜最省事的那一步,删的是配置,还是补的是证书?
— AI 生成,仅供参考

起因

1Panel 面板里 OpenResty 容器状态一直是”重启中”,所有依赖它的网站全部打不开。更烦人的是——因为 OpenResty 没启动,面板里网站设置页面也操作不了,鸡生蛋蛋生鸡。

1Panel OpenResty 无限重启排查记

排查

第一步当然是看日志:

docker logs $(docker ps -a --filter "name=openresty" -q) --tail 100

日志里满屏都是同一行报错:

cannot load certificate "/www/sites/example.yourdomain.com/ssl/fullchain.pem":
BIO_new_file() failed (SSL: error:80000002:system library::No such file or directory)

原因很直白:example.yourdomain.com 这个站点配置了 HTTPS,但证书文件不存在。Nginx 启动时加载配置 → 找不到证书 → 启动失败 → Docker restart 策略让它再试 → 又失败 → 无限循环。

为什么证书会丢?

几种可能:

  • 站点创建时申请了证书,后来手动删除了证书文件
  • 用 Let’s Encrypt 自动续期,但续期失败后旧证书过期被清理
  • 迁移或备份恢复时漏掉了证书目录
  • 手动清理磁盘时误删

不管哪种,结果一样:Nginx 配置里引用了一个不存在的文件,直接炸。

解法

因为 OpenResty 起不来,1Panel 面板里的网站管理页面也用不了,所以得直接在服务器上操作。

方式一:生成自签证书占位(推荐)

让证书文件”存在”就行,Nginx 不关心证书内容是否正确,只要文件在就能启动。启动后回到面板再正式申请正式证书。

# 确认证书目录路径,通常在:
ls /opt/1panel/apps/openresty/openresty/www/sites/example.yourdomain.com/ssl/

# 如果 ssl 目录不存在就创建
mkdir -p /opt/1panel/apps/openresty/openresty/www/sites/example.yourdomain.com/ssl/

# 生成自签证书占位
openssl req -x509 -nodes -days 365 -newkey rsa:2048 
  -keyout /opt/1panel/apps/openresty/openresty/www/sites/example.yourdomain.com/ssl/privkey.pem 
  -out /opt/1panel/apps/openresty/openresty/www/sites/example.yourdomain.com/ssl/fullchain.pem 
  -subj "/CN=example.yourdomain.com"

# 重启 OpenResty
docker restart $(docker ps -a --filter "name=openresty" -q)

好处是保留了站点配置,启动后可以回到面板正常管理,再替换成正式证书。

方式二:删掉站点配置文件

如果暂时不需要这个站点,或者想回到面板重新配置,直接删掉对应的 Nginx 配置文件。

# 找到站点配置文件
ls /opt/1panel/apps/openresty/openresty/conf/conf.d/

# 先备份
cp /opt/1panel/apps/openresty/openresty/conf/conf.d/example.yourdomain.com.conf ~/站点配置备份.conf.bak

# 删除
rm /opt/1panel/apps/openresty/openresty/conf/conf.d/example.yourdomain.com.conf

# 重启
docker restart $(docker ps -a --filter "name=openresty" -q)

我这次用的方式二,删完重启,OpenResty 立刻正常。后续需要时再在面板里重新创建站点。

复盘

环节要点
现象OpenResty 容器不断重启
根因站点开了 HTTPS 但证书文件不存在
关键docker logs 一眼看穿
坑点面板操作依赖 OpenResty,必须绕过面板手动修
预防别手动删证书文件;Let’s Encrypt 续期失败要及时处理

1Panel OpenResty 重启的常见原因速查

如果日志里不是证书问题,还有这些可能:

  1. 端口冲突:80/443 被其他进程占,ss -tuln | grep ':80 ' 检查
  2. 镜像不完整:特别是 ARM 架构,重新 docker pull
  3. 配置语法错误docker exec 进容器跑 nginx -t
  4. 磁盘满df -h 看一眼

但说实话,碰到 OpenResty 无限重启,十次有八次是证书文件的问题。

【文武哥日常】原创文章,作者:【文武哥】,如若转载,请注明出处

(0)
打赏 打赏文武哥 打赏文武哥
伊朗暂停和谈威胁封锁海峡,白银再承压
上一篇 2026年6月2日 下午7:26
美伊冲突升级、ETF减持与加息预期:白银短期承压的三重因素
下一篇 2026年6月3日 下午1:46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

评论列表(26条)

  • 麒麟祥瑞的头像
    麒麟祥瑞 2026年6月2日 下午7:33

    我也遇到过这问题,折腾了半天才发现是证书文件丢了,坑爹😤

  • NightmareDancer的头像
    NightmareDancer 2026年6月2日 下午7:38

    docker logs真是排查神技啊

  • 袋鼠快递员的头像
    袋鼠快递员 2026年6月2日 下午8:34

    自签证书这招太救命了

  • Dark暗的头像
    Dark暗 2026年6月2日 下午9:11

    证书一丢直接雪崩,这谁顶得住

    • 文武哥的头像
      文武哥 2026年6月2日 下午9:45

      @Dark暗是,一丢就连锁反应,后来我直接用自签占位先顶着,面板起来再补正式证书。

  • 桂花飘香的头像
    桂花飘香 2026年6月2日 下午9:22

    删配置文件重启,简单粗暴有效

  • 羽觞的头像
    羽觞 2026年6月2日 下午10:06

    nginx一炸,全家都得等修

  • 流年似水逝的头像
    流年似水逝 2026年6月3日 上午8:04

    自签证书确实稳,省得折腾

  • 星空鹿的头像
    星空鹿 2026年6月3日 上午10:18

    这直接把配置删掉重启就行?站点配置备份了后面重建方便吗?

    • 跑步狂的头像
      跑步狂 2026年6月2日 下午7:40

      @星空鹿重建很方便的,1Panel里重新添加站点填下域名就行了

  • 星际梦想的头像
    星际梦想 2026年6月3日 上午10:53

    方式二的备份思路不错,下次留个心眼先cp备份一下

  • 寂夜客的头像
    寂夜客 2026年6月3日 下午2:38

    自签证书占位这招确实省事

    • 悠悠的头像
      悠悠 2026年6月2日 下午7:41

      @寂夜客是的,但别忘了后面要换正式证书,不然浏览器的警告烦死了

  • 九寨幻境的头像
    九寨幻境 2026年6月3日 下午4:44

    还可以看看是不是磁盘满了,我上次就是/var/lib/docker满了导致证书写不进去

  • EchoEthereal的头像
    EchoEthereal 2026年6月3日 下午5:32

    自签证书占位后,面板里能直接换正式证书吗?需要手动改配置吗?

  • Nova星的头像
    Nova星 2026年6月3日 下午11:07

    openssl生成自签证书时-subj参数可以随便填吗?

    • 铁血刀的头像
      铁血刀 2026年6月2日 下午7:40

      @Nova星自签证书生成的私钥用完之后要记得删掉吧,不然安全起见?

  • 暗夜炼金师的头像
    暗夜炼金师 2026年6月4日 上午7:43

    删配置太粗暴了,自签证书方案最好,保留站点配置

  • 小猫崽崽的头像
    小猫崽崽 2026年6月4日 下午12:44

    又是证书问题,Nginx这玩意一生气就罢工 😤

  • MythosWraith的头像
    MythosWraith 2026年6月4日 下午5:12

    我之前也被这个loop搞崩溃,发现是letsencrypt续期失败证书过期了😭

  • 辐射之狼的头像
    辐射之狼 2026年6月4日 下午7:26

    我之前也是遇到证书问题,最后发现是letsencrypt续期失败旧证书被清除了,坑😭