1panel + OpenResty 网站 504 解决方案

发布于 2024-07-17  21 次阅读


0. 前情提要

今天偶然登录我的网站,想写一篇文章,发现它炸了,在加载整整一分钟后提示:

504 Gateway Timeout - OpenResty

1. 追根溯源

它是基于 1panel + OpenResty + WordPress 的,于是我首先查看了 OpenResty 的日志,从中找到两条信息(已隐去部分信息):

no resolver defined to resolve r10.o.lencr.org while requesting certificate status, responder: r10.o.lencr.org, certificate: "/www/sites/keqing.moe/ssl/fullchain.pem"
*19 cannot load certificate "data:": PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE) while SSL handshaking, client: xx.xxx.xx.xxx, server: 0.0.0.0:443

然而并没有用的说。它似乎提示我是 SSL 的问题,我换了新证书,又试了网上的说法给 nginx 配置添加了一个 resolver ,结果照旧。

然后我试着重启 OpenResty ,依旧没有效果。

不过也并非一无所获,在刚才的尝试中了,我得知 OpenResty 会把请求转发给 Nginx ,于是我试着直接用浏览器访问背后的 Nginx 服务器,我得到了这样的报错:

Error establishing a database connection

这下看懂了,是 MySQL 出问题了,直接调取日志:

2024-07-17T07:17:21.096224Z 0 [System] [MY-013172] [Server] Received SHUTDOWN from user . Shutting down mysqld (Version: 8.2.0).
2024-07-17T07:17:28.982437Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.2.0)  MySQL Community Server - GPL.
2024-07-17T07:17:30.019389Z 0 [System] [MY-015016] [Server] MySQL Server - end.

看不太懂,但总之应该就是它自动关掉了,遂重启,然而又报错了:

Container 1Panel-mysql-xd0C Creating Container 1Panel-mysql-xd0C Created Container 1Panel-mysql-xd0C Starting Error response from daemon: driver failed programming external connectivity on endpoint 1Panel-mysql-xd0C

咱也不会 Docker ,这下是真没辙了。

2. 解决方案

不过,把上面这段报错在网上一搜,直接搜到 1panel 官方的解决方案。 按官方说的,重启 Docker 后问题解决了。

我这个案例似乎网上找不到相同的,在此共享出来。至于为什么 MySQL 会出现 Received SHUTDOWN from user 的情况,就在我能力范围之外了,请读者自行研究吧。

因为我个人的某些习惯,所以文中部分日志已经丢失,是我又在网上搜索补全的,可能存在错漏,请更多参考自己的情况。