新增服务器重启文档
This commit is contained in:
99
(红头)服务器重启.md
Normal file
99
(红头)服务器重启.md
Normal file
@@ -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 重新正常创建,服务恢复。
|
||||||
|
|
||||||
Reference in New Issue
Block a user