努力
奋斗

新手搭建Node.js博客或API服务,选哪个预装基础工具的Linux系统镜像最省心?

服务器价格表

直接给结论:Debian 12 (Bookworm) 的官方纯净镜像(Netinst)。

别听那些推荐 Ubuntu 或者 CentOS Stream 的,对于新手搭建 Node.js 环境,Debian 是最“不折腾”的选择。

以下是硬核理由和实操避坑指南:

为什么是 Debian?

  1. 稳定性压倒一切
    Node.js 项目最怕依赖库版本冲突。Debian 的软件包策略极其保守且稳定,apt 源里的软件版本虽然不如 Arch 新,但对于生产环境或长期运行的博客来说,这种“老成持重”意味着你不用每天盯着安全补丁更新系统内核导致服务中断。

  2. 资源占用极低
    新手通常买的是最便宜的云服务器(比如 1核 1G 或 2G)。Ubuntu 默认带的后台服务和桌面组件残留会吃掉不少内存。Debian Netinst 装完只有几百 MB 的磁盘占用,内存空闲率极高,剩下的 RAM 全给 Node.js 进程跑 V8 引擎,性能体验更好。

  3. 社区文档兼容性最好
    绝大多数 Node.js 教程、Docker 官方文档、PM2 配置示例,底层逻辑都是基于 Debian/Ubuntu 系的 apt 命令。学会了 Debian,你就通吃了这一半的市场。

  4. 去除了“预装垃圾”
    很多云厂商提供的“一键部署”镜像里塞满了监控Agent、日志收集器、甚至X_X病毒。自己用 Netinst 安装,你可以只选 SSH Server 和 System Utilities,其他一个都不勾。干净得像一张白纸,排查问题时有迹可循。

绝对不要选的雷区

  • CentOS 7/Stream:CentOS 7 已经停止维护(EOL),漏洞没人管;CentOS Stream 是滚动测试版,不稳定。新手千万别碰红帽系,权限管理和防火墙配置能把你绕晕。
  • Ubuntu LTS 的“云优化版”:有些云厂商定制的 Ubuntu 镜像改了主机名、改了 DNS 解析,甚至屏蔽了部分端口。一旦出问题,你很难判断是代码问题还是系统被改过。
  • Arch Linux / Gentoo:这是给自己找罪受。你需要手动编译内核、处理依赖地狱。你是来写博客/API 的,不是来修操作系统的。

新手省心搭建流程(极简版)

既然选了 Debian,就按这个路径走,少走弯路:

  1. 初始化系统

    # 更新基础包
    sudo apt update && sudo apt upgrade -y
    
    # 安装必要工具
    sudo apt install curl git vim -y
  2. Node.js 环境管理(关键!)
    不要用 apt install nodejs,那个版本太老,而且无法灵活切换版本。
    正确做法:使用 nvm (Node Version Manager)

    # 安装 nvm
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
    
    # 重新加载 shell 配置
    source ~/.bashrc
    
    # 安装最新 LTS 版本
    nvm install --lts
    
    # 设为默认
    nvm use --lts

    好处:以后 Node.js 出新版,一行命令升级,不会搞坏系统级依赖。

  3. 进程守护(别用 forever 了)
    直接用 PM2。

    npm install -g pm2
    pm2 start app.js --name "my-blog"
    pm2 startup systemd  # 开机自启
    pm2 save             # 保存当前进程列表

    PM2 自带日志轮转、崩溃重启、集群模式,足够应付个人博客和小 API。

  4. 反向X_X(Nginx)
    不要让你的 Node.js 直接暴露 3000/8080 端口。
    装 Nginx,配置一个简单的 proxy_pass 到 localhost:你的端口。

    server {
        listen 80;
        server_name yourdomain.com;
    
        location / {
            proxy_pass http://localhost:3000;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
        }
    }

    这样还能顺便接入 Let’s Encrypt 免费 SSL 证书(用 Certbot 一条命令搞定)。

最后提醒

  • 防火墙:Debian 默认没开复杂规则,但记得用 ufw 放行 80, 443, 22。
    sudo ufw allow 22/tcp
    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
    sudo ufw enable
  • 备份:不管系统多稳,定期 tar czf backup.tar.gz /var/www /etc/nginx /home/user/.nvm 是保命习惯。

选 Debian,装 NVM + PM2 + Nginx,这套组合拳打下来,你的精力会全部集中在业务代码上,而不是在系统报错里打转。这才是“省心”的本质。