在 Debian 上用 Node.js 开服务,通常有以下几种常见方式,从「最简单」到「生产可用」给你说明。
sudo apt update
sudo apt install nodejs npm
验证:
node -v
server.js
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello Debian\n');
});
server.listen(3000, () => {
console.log('Server running on port 3000');
});
node server.js
访问:
http://服务器IP:3000
⚠️ 这种方式关闭终端就会停
nohup node server.js &
或
node server.js &
查看:
ps aux | grep node
sudo nano /etc/systemd/system/nodeapp.service
内容示例:
[Unit]
Description=Node.js App
After=network.target
[Service]
Type=simple
User=www-data
WorkingDirectory=/var/www/nodeapp
ExecStart=/usr/bin/node /var/www/nodeapp/server.js
Restart=on-failure
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start nodeapp
sudo systemctl enable nodeapp
sudo systemctl status nodeapp
sudo systemctl restart nodeapp
sudo journalctl -u nodeapp
sudo apt install nginx
sudo nano /etc/nginx/sites-available/nodeapp
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;
}
}
sudo ln -s /etc/nginx/sites-available/nodeapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
npm install -g pm2
pm2 start server.js
pm2 startup
如果你愿意,可以告诉我:
我可以直接给你一套完整配置。