1. 更新系统包
在部署前,确保Debian系统的软件包是最新的,避免兼容性问题:
sudo apt update && sudo apt upgrade -y
2. 安装Node.js和npm
Node.js是JS应用的运行环境,npm是其包管理器。推荐通过NodeSource仓库安装特定版本(如16.x/18.x),或使用NVM(Node版本管理器)管理多版本:
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - sudo apt install -y nodejs
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash source ~/.bashrc nvm install 16 # 安装最新16.x版本 nvm use 16 # 切换至该版本
安装完成后,验证版本:
node -v # 查看Node.js版本 npm -v # 查看npm版本
3. 上传JS应用代码
将本地JS应用(如通过Git克隆或FTP/SFTP上传)放置到服务器目录(如/var/www/your-app
):
git clone https://github.com/yourusername/your-app.git /var/www/your-app cd /var/www/your-app
4. 安装应用依赖
JS应用通常通过package.json
管理依赖,进入项目目录运行以下命令安装:
npm install # 若需生产环境精简依赖,可添加--production参数 npm install --production
5. 配置环境变量
若应用需要敏感配置(如数据库密码、API密钥),建议使用.env
文件(需安装dotenv
包)或在服务器环境变量中设置:
.env
文件(不要提交至版本控制):echo "PORT=3000\nDB_HOST=localhost\nDB_USER=root\nDB_PASS=yourpassword" > .env
package.json
的scripts
中引用(如"start": "node -r dotenv/config app.js"
)。6. 使用PM2管理应用进程
PM2是Node.js进程管理工具,可实现后台运行、自动重启、日志管理等功能:
# 全局安装PM2 sudo npm install -g pm2 # 启动应用(假设入口文件为app.js) pm2 start app.js --name "your-app" # 保存当前进程列表(系统重启后自动恢复) pm2 save # 设置开机自启 pm2 startup
查看应用状态:
pm2 status # 查看实时日志 pm2 logs your-app
7. 配置Nginx反向代理(可选但推荐)
Nginx可作为反向代理,处理HTTP请求转发、静态文件服务及SSL加密,提升应用性能和安全性:
sudo apt install nginx -y
/etc/nginx/sites-available/your-app
):sudo nano /etc/nginx/sites-available/your-app
添加以下内容(替换your_domain.com
为域名/IP,3000
为应用端口):server { listen 80; server_name your_domain.com; location / { proxy_pass http://localhost:3000; # 转发至Node.js应用 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/your-app /etc/nginx/sites-enabled sudo nginx -t # 测试配置语法 sudo systemctl restart nginx
8. 配置防火墙
若服务器启用了ufw
防火墙,需开放HTTP(80)和HTTPS(443)端口:
sudo ufw allow 'Nginx Full' # 允许HTTP和HTTPS sudo ufw enable # 启用防火墙(若未启用)
9. 可选:配置HTTPS(推荐)
使用Let’s Encrypt免费获取SSL证书,加密应用流量:
# 安装Certbot和Nginx插件 sudo apt install certbot python3-certbot-nginx -y # 获取证书并自动配置Nginx sudo certbot --nginx -d your_domain.com # 按提示完成验证(需域名解析至服务器IP)
证书会自动续期,无需手动操作。
10. 验证部署
打开浏览器访问http://your_domain.com
(或IP地址),若看到应用页面则表示部署成功。可通过PM2日志排查问题:
pm2 logs your-app