我来检查实例环境。这次会通过远程命令通道执行几条只读命令,查询系统信息、已安装的软件以及正在运行的服务。系统信息已拿到。接着查一下正在运行的服务和监听端口。环境已经查清。我再补充一下 Nginx 各自配置和站点目录的对应关系,以便说明每一项服务在运行什么。检查完了。你这台机器运行的不只是一个站点,实际运行着 6 个 Next.js 站点。

一、系统基线

Ubuntu 22.04.5 LTS,内核 5.15.0-181,已连续运行 93 天,是稳定状态,也说明中间没有重启过,内核补丁没有生效。

资源 情况
CPU 4 核,load average 0.13 / 0.05 / 0.01,负载很低
内存 7.6 GB,已用 2.6 GB,可用 4.7 GB
磁盘 118 GB,已用 59 GB,占 52%;注意 /home 占 27 GB
Swap 0,没有

二、已安装的软件

已安装:

软件 版本
Nginx 1.18.0(Ubuntu 仓库版)
Node.js v20.20.2
npm 已装
Python 3.10.12 + pip3
Git 已装
PM2 已装(在 /usr/bin/pm2,但 root 下没有托管进程,实际使用 systemd)

未安装: Docker、docker-compose、Java、MySQL、Redis、PHP、Go。

三、正在运行的服务(重点)

6 个 Nginx 站点,后端都是 Next.js:

域名 端口 转发到 systemd 服务
naydqos.cn / www 80 + 443 :3003 goHome-site ✅
blog.naydqos.cn 8085 + 443 :3005 my-blog-all ✅
book.naydqos.cn 8084 + 443 :9099 (无 systemd,手动跑)
wallpaper.naydqos.cn 8081 + 443 :3001 wallpaper-site ✅
aura.naydqos.cn 8080 + 443 :3000 (无 systemd,手动跑)
无域名(server_name _) 8082 :3002 my-blog ✅

内存占用排行(next-server 进程):

  • PID 1618597 → 812 MB(10.2%)
  • PID 34371 → 674 MB(8.4%)
  • PID 337504 → 285 MB
  • 其余三个 190~220 MB
  • 六个进程合计约 2.4 GB

其他常驻服务:nginx、sshd、cron、rsyslog、ntpd、tat_agent、snapd 等标准件。

四、发现 3 个该处理的问题

🔴 1. 两个站点没有开机自启保护

aura.naydqos.cn(:3000)和 book.naydqos.cn(:9099)这两个 next-server 进程不是由 systemd 管理的。机器一旦重启,这两个站点会直接 502,必须手动登录服务器重新启动。风险最高。

🟡 2. 一台机器运行 6 个 Next.js,内存压力很大

Next.js SSR 每个实例常驻 200~800 MB,六个加起来吃掉了 2.4 GB。目前可用 4.7 GB 还撑得住,但已经没有 Swap。如果再加一个站点或流量上来,OOM Killer 会随机终止进程;它很可能优先终止占用内存较大的那个,且不容易预料是哪一个。

🟡 3. 安全暴露面偏大

  • UFW 防火墙没有启用(inactive),目前只依赖云平台的安全组
  • 8080、8081、8082、8084、8085 全部监听 0.0.0.0,这些内部端口理论上可以从公网直接访问,绕过 Nginx 的 HTTPS
  • 没有安装 fail2ban,SSH 22 端口暴露公网,最近登录记录显示用 orcaterm 登录,密码认证大概率是开着的

另外/home/ubuntu 占了 27 GB,但 du 只统计到 204 KB 的子目录,大头应该是隐藏目录或零散文件,如果需要,我可以查一下。

建议下一步(按性价比排序)

  1. 给 aura 和 vue-ebook 补 systemd 服务:10 分钟的事,避免重启后两个站点挂掉
  2. 加 4 GB Swap:防止 OOM 导致随机终止进程,这是内存不足时最省事的低成本方案
  3. 收敛端口:把 8080/8081/8082/8084/8085 改成只监听 127.0.0.1,或直接关掉,公网只留 80/443/22
  4. 开 UFW + 装 fail2ban:用于防暴力破解

这四项都属于「改动配置」,第 1、3 项会短暂影响连接。你想先处理哪一项?或者说「全做」,我会按顺序执行,每一步改完验证再进入下一步。

本页笔记

加载中…