From 93b73cabc8126bdb25128eb1cc250c51ed7d2e45 Mon Sep 17 00:00:00 2001 From: renjianbo <263303411@qq.com> Date: Thu, 2 Apr 2026 17:25:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=9C=8D=E5=8A=A1=E5=99=A8?= =?UTF-8?q?=E9=87=8D=E5=90=AF=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- (红头)服务器重启.md | 99 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 (红头)服务器重启.md diff --git a/(红头)服务器重启.md b/(红头)服务器重启.md new file mode 100644 index 0000000..7a94d9c --- /dev/null +++ b/(红头)服务器重启.md @@ -0,0 +1,99 @@ +# 服务器重启记录(nginx / php-fpm) + +## 执行时间 + +2026-04-02 + +## 目标 + +修复后台接口返回 `502 Bad Gateway`(`/admin/login` 与 `/adminghd/login`)。 + +## 处置过程与关键命令 + +### 1. 校验并重启 nginx + +1) 校验配置: + +```bash +/www/server/nginx/sbin/nginx -t +``` + +2) 平滑停/启(按命令执行顺序): + +```bash +/www/server/nginx/sbin/nginx -s stop +sleep 1 +/www/server/nginx/sbin/nginx +sleep 1 +``` + +3) 重启后快速探测(当时仍为 502): + +```bash +curl -k -sS -o /dev/null -w '%{http_code}\n' -H "Host: www.ruilaizipj.com" https://127.0.0.1/admin/login +curl -k -sS -o /dev/null -w '%{http_code}\n' -H "Host: www.ruilaizipj.com" https://127.0.0.1/adminghd/login +``` + +当时输出:`502` / `502`。 + +### 2. 进一步定位:nginx fastcgi 指向的 php-fpm socket 丢失 + +从 nginx vhost 错误日志中观察到典型报错: +`connect() to unix:/tmp/php-cgi-56.sock failed (2: No such file or directory) while connecting to upstream` + +并且在故障窗口期内,直接探测 socket 路径存在性出现不一致(最终以“socket 不在”导致 nginx 502 为主因)。 + +### 3. 重启 php-fpm(先 USR2 方式) + +先对 php-fpm 两套版本做了重载(USR2): + +```bash +kill -USR2 12760 # php-fpm 56 master process +kill -USR2 12747 # php-fpm 73 master process +sleep 2 +``` + +重载后 `ss` 可见 socket 监听,但 `/admin/login` 仍返回 `502`,socket 仍存在“文件不可直接访问/表现不稳定”的情况。 + +### 4. 强制彻底重启 php-fpm 56(重新创建 socket) + +为了强制重新绑定并确保 socket 文件落地,执行了 php-fpm 56 停-起: + +```bash +# 停止 php-fpm 56 master(先查到 pid 为 14010) +kill -TERM 14010 + +# 启动 +/www/server/php/56/sbin/php-fpm --daemonize \ + --fpm-config /www/server/php/56/etc/php-fpm.conf \ + --pid /www/server/php/56/var/run/php-fpm.pid +sleep 1 +``` + +启动后检查结果: + +```bash +ls -la /tmp/php-cgi-56.sock +# socket 文件已存在 +``` + +并且本机对 socket 做了直接连通性检查,`connect ok`。 + +## 验证结果 + +重启 php-fpm 56 完成后,后台入口已恢复: + +```bash +curl -k -sS -o /dev/null -w '%{http_code}\n' -H "Host: www.ruilaizipj.com" https://127.0.0.1/admin/login +curl -k -sS -o /dev/null -w '%{http_code}\n' -H "Host: www.ruilaizipj.com" https://127.0.0.1/adminghd/login +``` + +输出: + +- `/admin/login` => `200` +- `/adminghd/login` => `200` + +## 结论 + +此次 `502` 的根因主要为 nginx fastcgi 上游(php-fpm socket)异常/缺失,导致 `connect() to unix:/tmp/php-cgi-56.sock ... No such file or directory`,通过强制重启 php-fpm 56 后 socket 重新正常创建,服务恢复。 +