sudo apt update && sudo apt upgrade -y
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt install -y nodejs
sudo apt install -y nginx
sudo npm install -g pm2
cd /path/to/your/app
npm install
pm2 start app.js --name "my-node-app"
# 或者如果你的入口文件不同
# pm2 start server.js --name "my-node-app"
pm2 startup
pm2 save
sudo nano /etc/nginx/sites-available/yourdomain.com
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
location / {
proxy_pass http://localhost:3000; # 假设你的Node应用运行在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;
}
}
sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled
sudo nginx -t # 测试配置是否正确
sudo systemctl restart nginx
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
使用Let's Encrypt免费SSL证书:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
证书会自动续期,NGINX配置也会自动更新。
pm2 list
pm2 logs
pm2 restart app_name
pm2 stop app_name
pm2 delete app_name
检查Node.js应用是否运行:
curl http://localhost:3000
检查NGINX错误日志:
sudo tail -f /var/log/nginx/error.log
检查PM2日志:
pm2 logs
检查端口占用:
sudo netstat -tulnp
通过以上步骤,你的Node.js应用应该已经成功部署并通过NGINX对外提供服务了。