debian

Debian服务器上js应用部署流程

小樊
38
2025-10-10 16:15:20
栏目: 云计算

1. 更新系统包
在开始部署前,确保Debian系统的软件包是最新的,避免因旧版本依赖导致安装冲突:

sudo apt update && sudo apt upgrade -y

2. 安装Node.js与npm
Node.js是JavaScript应用的运行环境,npm是其包管理工具。推荐通过NodeSource仓库安装特定版本(如16.x/18.x),确保兼容性:

# 添加NodeSource仓库(以16.x为例)
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
# 安装Node.js及npm
sudo apt install -y nodejs
# 验证安装
node -v  # 查看Node.js版本
npm -v   # 查看npm版本

3. 上传应用代码
将本地JavaScript应用(如通过Git管理的仓库)上传至服务器。常用方法:

进入应用目录:

cd /path/to/deploy

4. 安装应用依赖
应用目录中的package.json文件记录了项目依赖,通过以下命令安装:

npm install
# 若需安装生产环境依赖(忽略devDependencies),可添加--production参数
npm install --production

5. 配置环境变量
若应用需要敏感配置(如数据库密码、API密钥),建议使用.env文件管理(需安装dotenv包)。创建.env文件并添加变量:

# 示例:.env文件内容
NODE_ENV=production
DB_HOST=localhost
DB_USER=root
DB_PASS=yourpassword

在代码中通过require('dotenv').config()加载(需在入口文件顶部添加)。

6. 使用PM2管理应用进程
PM2是Node.js进程管理工具,可实现后台运行、自动重启、日志管理等功能。安装PM2并启动应用:

# 全局安装PM2
sudo npm install -g pm2
# 启动应用(假设入口文件为app.js)
pm2 start app.js --name "my-js-app"
# 保存当前进程列表(确保服务器重启后自动恢复)
pm2 save
# 查看应用状态
pm2 status
# 查看实时日志
pm2 logs my-js-app

7. 配置Nginx反向代理(可选但推荐)
Nginx可作为反向代理,处理HTTP请求转发、静态文件服务及SSL加密。安装Nginx:

sudo apt install -y nginx

创建Nginx配置文件(如/etc/nginx/sites-available/my-js-app),添加以下内容(替换your-domain.com为域名/IP):

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;
    }
}
# 启用配置(创建软链接至sites-enabled目录)
sudo ln -s /etc/nginx/sites-available/my-js-app /etc/nginx/sites-enabled
# 测试Nginx配置语法
sudo nginx -t
# 重启Nginx生效
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证书,实现HTTPS加密。安装Certbot及Nginx插件:

sudo apt install -y certbot python3-certbot-nginx
# 获取证书并自动配置Nginx
sudo certbot --nginx -d your-domain.com
# 按提示完成验证(如输入邮箱、同意条款)

证书会自动续期,无需手动操作。

10. 监控与维护

以上流程覆盖了Debian服务器上JavaScript应用部署的核心步骤,可根据实际需求调整(如使用Docker容器化、配置数据库等)。

0
看了该问题的人还看了