下面给你一份 在 Debian 上安装和配置 Node.js 的常用做法,从“能跑起来”到“生产可用”都说清楚。
Debian 自带仓库的 Node 版本通常偏旧,推荐用 NodeSource。
sudo apt update
sudo apt upgrade -y
sudo apt install -y curl build-essential
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
node -v
npm -v
如果你一台机器要多个 Node 版本,用 nvm 最方便。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
重新登录或:
source ~/.bashrc
安装 Node:
nvm install 20
nvm use 20
npm config set registry https://registry.npmmirror.com
查看:
npm config get registry
不推荐用 sudo npm -g
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
加到 ~/.bashrc:
export PATH=~/.npm-global/bin:$PATH
npm install -g pm2
启动:
pm2 start app.js
常用命令:
pm2 list
pm2 logs
pm2 restart app
pm2 save
pm2 startup
用户 → Nginx(80/443) → Node(3000)
Nginx 示例:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
}
}
如果你不用 PM2,也可以写 systemd:
sudo nano /etc/systemd/system/nodeapp.service
[Unit]
Description=Node App
After=network.target
[Service]
User=www-data
WorkingDirectory=/var/www/nodeapp
ExecStart=/usr/bin/node app.js
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl enable nodeapp
sudo systemctl start nodeapp
npm ERR! code EACCES→ 不要用 sudo,用 npm prefix 或 nvm
sudo lsof -i:3000
cat /etc/debian_version
Node 20 需要 Debian 10+
如果你能说明:
我可以直接给你一套更贴合的配置方案。