在 Debian 上启动 Node.js 服务,常见有以下几种方式,从最基础到生产环境推荐给你说明。
假设你有一个文件 app.js:
node app.js
如果是 ES Module(package.json 里 "type": "module"):
node app.mjs
⚠️ 这样启动:关闭终端服务就停了
node app.js &
或者:
nohup node app.js > app.log 2>&1 &
查看进程:
ps aux | grep node
停止:
kill <pid>
sudo npm install -g pm2
pm2 start app.js
pm2 list
pm2 logs
pm2 restart app
pm2 stop app
pm2 delete app
pm2 startup
pm2 save
✅ 这是 Debian 上最常用、最稳定的方式
sudo nano /etc/systemd/system/nodeapp.service
示例内容:
[Unit]
Description=Node.js App
After=network.target
[Service]
WorkingDirectory=/var/www/myapp
ExecStart=/usr/bin/node /var/www/myapp/app.js
User=www-data
Environment=NODE_ENV=production
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reexec
sudo systemctl enable nodeapp
sudo systemctl start nodeapp
sudo systemctl status nodeapp
journalctl -u nodeapp -f
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:3000;
}
}
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt install -y nodejs
| 场景 | 推荐方式 |
|---|---|
| 学习 / 测试 | node app.js |
| 小项目 | PM2 |
| 生产服务器 | systemd + Nginx |
| 多服务管理 | PM2 |
如果你愿意,可以告诉我:
我可以给你定制一套启动方案。