在 Linux 服务器上运行 Node.js 的完整步骤
一 安装 Node.js
- 使用包管理器(适合快速安装与系统级维护)
- Ubuntu/Debian:
- 更新索引:sudo apt update
- 安装:sudo apt install -y nodejs npm
- CentOS/RHEL/Fedora:
- 安装 EPEL(如需要):sudo yum install -y epel-release
- 安装:sudo yum install -y nodejs npm 或 sudo dnf install -y nodejs npm
- 使用 NodeSource 仓库(指定版本更灵活)
- Ubuntu/Debian(示例为 16.x):
- 添加源:curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
- 安装:sudo apt-get install -y nodejs
- CentOS/RHEL(示例为 16.x):
- 添加源:curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash -
- 安装:sudo yum install -y nodejs
- 使用 NVM(多版本并存与切换)
- 安装:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
- 加载:source ~/.bashrc
- 安装与切换:nvm install --lts 或 nvm install 18,随后 nvm use 18;可设默认:nvm alias default 18
- 验证安装:node -v、npm -v。
二 运行与测试
- 创建测试文件 app.js:
const http = require('http');
const hostname = '0.0.0.0';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
- 前台运行:node app.js
- 浏览器访问:http://服务器IP:3000(确保端口已开放)。
三 生产环境运行方式
- 使用 PM2(进程守护、自动重启、日志管理)
- 安装:npm install -g pm2
- 启动:pm2 start app.js --name “my-app”
- 常用:pm2 list、pm2 logs my-app、pm2 restart my-app、pm2 stop my-app
- 使用 systemd(系统级服务,开机自启)
- 使用 Docker(环境一致、便于部署)
- 临时后台运行(不推荐生产):nohup node app.js &。
四 开放端口与防火墙
- 云服务器安全组:在控制台放行你的应用端口(如 3000/TCP)。
- firewalld(CentOS/RHEL):
- 放行端口:firewall-cmd --zone=public --add-port=3000/tcp --permanent
- 重载规则:firewall-cmd --reload
- 查看端口:firewall-cmd --list-ports
- 其他发行版请启用并放行相应端口(如 ufw/iptables)。
五 常见问题与优化
- 版本管理:开发/测试多项目建议用 NVM 管理多个 Node.js 版本,避免冲突。
- 全局包权限:避免用 sudo npm -g;可配置 npm 全局目录到用户目录或使用独立版本管理。
- 性能与稳定性:生产环境优先 PM2 或 systemd;必要时配置 反向代理(Nginx)、进程监控 与 日志轮转。
- 网络绑定:服务应监听 0.0.0.0 而非 127.0.0.1,否则外部无法访问。