对于全栈开发者来说,拥有一份属于自己的"运维速查表",能让你在遇到服务器报警或接口崩溃时,瞬间冷静下来,像老中医一样精准切脉。
💻 服务器运维终极备忘录:从起停到排障
这份文档将服务器操作分为四大核心模块。日常更新看模块一和二 ,出 Bug 报错看模块三和四。
🟢 模块一:Node.js 后端引擎(PM2 指令)
核心逻辑:PM2 是你的"监工",负责让你的 Node.js 代码永远在后台跑着,哪怕你关掉电脑,它也在工作。
| 执行场景 | 核心指令 | 白话翻译 / 适用情况 |
|---|---|---|
| 首次启动代码 | pm2 start dist/index.js --name "api" |
启动编译后的代码,并给这个进程起个好记的名字(比如叫 api)。 |
| 代码更新后生效 | pm2 restart api |
(最常用) 本地传了新代码到服务器,敲这个让新代码立刻生效。 |
| 查看所有运行项目 | pm2 list |
看看你的项目状态是绿色的 online 还是红色的 errored。 |
| 实时查看控制台 | pm2 logs |
盯着屏幕看有没有 console.log 打印,或者有没有报错。(按 Ctrl+C 退出) |
| 暂停后端服务 | pm2 stop api |
让项目暂时休息,但它还在 PM2 的列表里,随时可以 start 唤醒。 |
| 彻底删除项目 | pm2 delete api |
项目不做了,彻底把它从 PM2 的托管名单里踢出去。 |
| 清空历史日志 | pm2 flush |
当 pm2 logs 里面堆积了几个月的垃圾信息时,一键清屏。 |
🔵 模块二:Nginx 网关大门(Systemctl 指令)
核心逻辑:Nginx 是服务器的"门卫",掌管着 80 和 443 端口(HTTP/HTTPS)。它的配置文件一旦写错,整个网站都会瘫痪。
| 执行场景 | 核心指令 | 白话翻译 / 适用情况 |
|---|---|---|
| 测试配置是否写错 | sudo nginx -t |
(保命神技) 每次改完 Nginx 配置后必须敲 。如果不显示 successful,绝对不要重启! |
| 平滑重载新配置 | sudo systemctl reload nginx |
(最常用) 改了域名或转发规则后,让 Nginx 重新读取配置,且不会中断当前正在访问的访客。 |
| 强制重启网关 | sudo systemctl restart nginx |
简单粗暴地重启。一般在 reload 无效,或者刚装好 SSL 证书时使用。 |
| 彻底关闭网站 | sudo systemctl stop nginx |
把大门锁死,所有人都打不开你的网页了。 |
| 开启网关大门 | sudo systemctl start nginx |
网站休屏结束后,重新开门迎客。 |
| 查看 Nginx 状态 | sudo systemctl status nginx |
看看门卫是不是因为什么系统原因自己"晕倒"(挂掉)了。 |
🔴 模块三:紧急排障与除虫(捉虫工具箱)
核心逻辑 :当你遇到 405、502 Bad Gateway 或者代码跑不起来时,这里的命令能帮你揪出内鬼。
| 执行场景 | 核心指令 | 白话翻译 / 适用情况 |
|---|---|---|
| 找配置"内鬼" | grep -rnw '/etc/nginx/' -e '你的域名' |
当你怀疑改错文件时,全局搜索你的域名到底被写在了哪个配置文件里。 |
| 查谁占了 3000 端口 | sudo lsof -i :3000 |
启动报错 Address already in use 时,查出霸占 3000 端口的进程号(PID)。 |
| 暴力击杀卡死进程 | sudo kill -9 <PID号> |
拿到上面查出来的进程号后,像狙击手一样把它干掉(比如 sudo kill -9 12345)。 |
| 实时监控 Nginx 报错 | tail -f /var/log/nginx/error.log |
网页报 502/500 错误时,挂着这个命令,然后再去刷新网页,看弹出的红字写了啥。 |
| 排查跨域/权限报错 | tail -f /var/log/nginx/access.log |
看看前端发过来的请求到底长什么样,是被拒了还是转错了。 |
| 测试内网通不通 | curl -X POST http://127.0.0.1:3000/api |
不用前端网页,直接在服务器内部敲门,排除网络防火墙的干扰。 |
📊 模块四:服务器体检与加固(系统级指令)
核心逻辑:服务器就像一台 24 小时开机的旧电脑,内存爆了或者硬盘满了,它就会死机。
| 执行场景 | 核心指令 | 白话翻译 / 适用情况 |
|---|---|---|
| 查硬盘剩多少容量 | df -h |
重点看 / 根目录的 Use%。如果达到 95% 以上,你的数据库和项目马上就会崩溃停摆。 |
| 查内存还剩多少 | free -m |
看 available 那一列,如果所剩无几,PM2 可能会频繁重启你的 Node.js。 |
| 全面性能监控面板 | top |
类似 Windows 任务管理器,实时看谁占的 CPU 最多。按 q 退出。 |
| 修复静态文件权限 | sudo chmod -R 755 /var/www/你的目录 |
如果网页访问静态文件报 403 权限拒绝,这招能让 Nginx 拥有读取文件的权限。 |
这份文档涵盖了你跑通这个全栈项目所用到的所有"魔法咒语"。把它保存在手边,以后哪怕几个月没碰服务器,拿出来扫一眼就能迅速找回手感。
目前你的项目在前后端交互、服务器转发上已经形成了非常完美的闭环。接下来,你是打算去完善前端的用户体验(比如加上我们之前提到的防抖或 Loading 动画),还是准备开始着手写 MongoDB 的数据存储逻辑了?