全栈服务器运维终极备忘录

对于全栈开发者来说,拥有一份属于自己的"运维速查表",能让你在遇到服务器报警或接口崩溃时,瞬间冷静下来,像老中医一样精准切脉。


💻 服务器运维终极备忘录:从起停到排障

这份文档将服务器操作分为四大核心模块。日常更新看模块一和二 ,出 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 看看门卫是不是因为什么系统原因自己"晕倒"(挂掉)了。

🔴 模块三:紧急排障与除虫(捉虫工具箱)

核心逻辑 :当你遇到 405502 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 的数据存储逻辑了?

相关推荐
optimistic_chen2 小时前
【Vue3入门】自定义指令与插槽详解
linux·运维·服务器·vue.js·前端框架·指令
牛奶咖啡132 小时前
基于Cobbler的系统自动化安装部署——Cobbler的安装部署实践
linux·运维·服务器·cobbler·cobbler的安装配置·cobbler环境检查问题解决·cobbler中导入系统镜像
mounter6252 小时前
深度解析 RDMA 技术的里程碑:基于 DMA-BUF 的 P2P 直接访问(GPU Direct RDMA 新姿势)
linux·运维·服务器·网络·p2p·kernel
南山十一少2 小时前
docker的安装及使用
运维·docker·容器
Willliam_william2 小时前
CentOS 7系统中进行时间/时区设置
linux·运维·centos
李白的天不白2 小时前
linux安装MongoDB
linux·运维·服务器
BioRunYiXue2 小时前
从现象到机制:蛋白降解调控研究的系统策略与实验设计
java·linux·运维·服务器·网络·人工智能·eclipse
supersolon2 小时前
OpenClaw安装碰到的一些问题和解决方法
linux·运维·ai·openclaw·龙虾
sdm0704273 小时前
linux权限
linux·运维·服务器