JS应用在Debian上如何部署
1. 更新系统包
在部署前,确保Debian系统的软件包是最新的,避免兼容性问题:
sudo apt update &
&
sudo apt upgrade -y
2. 安装Node.js和npm
Node.js是JS应用的运行环境,npm是其包管理器。推荐通过NodeSource仓库安装特定版本(如16.x/18.x),或使用NVM(Node版本管理器)管理多版本:
- NodeSource方式(推荐):
以安装Node.js 16.x为例,运行以下命令添加仓库并安装:curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - sudo apt install -y nodejs
- NVM方式(适合多版本管理):
若需切换不同Node.js版本,先安装NVM,再指定版本: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加密,提升应用性能和安全性:
- 安装Nginx:
sudo apt install nginx -y
- 创建Nginx配置文件(如
/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; } }
- 启用配置并重启Nginx:
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
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: JS应用在Debian上如何部署
本文地址: https://pptw.com/jishu/720135.html