首页主机资讯Debian如何部署和管理JS应用

Debian如何部署和管理JS应用

时间2025-11-25 21:16:03发布访客分类主机资讯浏览894
导读:在 Debian 上部署与管理 JS 应用的实用指南 一 环境准备 更新系统并安装基础工具: sudo apt update && sudo apt upgrade -y 安装 Node.js 与 npm(两种常用方...

在 Debian 上部署与管理 JS 应用的实用指南

一 环境准备

  • 更新系统并安装基础工具:
    • sudo apt update & & sudo apt upgrade -y
  • 安装 Node.js 与 npm(两种常用方式,二选一或并存):
    • 使用 APT 官方仓库:sudo apt install -y nodejs npm
    • 使用 NodeSource 仓库(可指定版本,例如 20.x):
      • curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
      • sudo apt install -y nodejs
  • 验证安装:node -v 与 npm -v 显示版本号
  • 如需多版本并存与切换,使用 NVM(可选):
    • curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
    • source ~/.bashrc
    • nvm install 20
    • nvm use 20
  • 建议以非 root用户部署应用,后续用 systemd 或 PM2 以指定用户运行。

二 部署与运行

  • 准备代码与依赖:
    • 将代码放置到如 /opt/myapp,进入目录:cd /opt/myapp
    • 安装依赖:npm ci --only=production(或 npm install)
  • 直接运行(仅用于验证):node app.js(生产环境不建议直接前台运行)
  • 使用 PM2 守护进程(推荐):
    • 全局安装:sudo npm install -g pm2
    • 启动应用:pm2 start app.js --name myapp
    • 使用配置文件(支持多环境、集群等):
      • 新建 ecosystem.config.js:
        • module.exports = { apps: [{ name: ‘myapp’, script: ‘app.js’, instances: ‘max’, exec_mode: ‘cluster’, env: { NODE_ENV: ‘production’ } } ] }
      • 启动:pm2 start ecosystem.config.js --env production
    • 常用命令:pm2 list、pm2 logs、pm2 restart myapp、pm2 monit
  • 设置开机自启与持久化:
    • PM2 托管:pm2 startup(按提示执行) & & pm2 save
    • 或采用 systemd 服务(适合系统级托管,示例):
      • 新建 /etc/systemd/system/myapp.service:
        • [Unit] Description=My Node.js App; After=network.target
        • [Service] Type=simple; User=www-data; WorkingDirectory=/opt/myapp; ExecStart=/usr/bin/node /opt/myapp/app.js; Restart=on-failure; Environment=NODE_ENV=production
        • [Install] WantedBy=multi-user.target
      • 启用:sudo systemctl daemon-reload & & sudo systemctl enable --now myapp
      • 查看:sudo systemctl status myapp

三 反向代理与网络

  • 安装 Nginx:sudo apt install -y nginx
  • 配置反向代理(/etc/nginx/sites-available/default 或 /etc/nginx/conf.d/myapp.conf):
    • server { listen 80; server_name your_domain_or_ip; 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; proxy_cache_bypass $http_upgrade; } }
  • 校验与生效:sudo nginx -t & & sudo systemctl reload nginx
  • 防火墙放行(如使用 UFW):sudo ufw allow ‘Nginx Full’
  • 可选:启用 HTTPS/TLS(Certbot 等)以加密传输

四 日志监控与运维

  • PM2 内置日志与监控:
    • 实时日志:pm2 logs
    • 监控面板:pm2 monit
    • 日志轮转与保留(示例):
      • pm2 set pm2:log-date-format “YYYY-MM-DD HH:mm Z”
      • pm2 set pm2:max-size 10M
      • pm2 set pm2:retain 7d
  • 集中式日志(可选,适合多实例/多服务):
    • 部署 ELK Stack(Elasticsearch、Logstash、Kibana),Logstash 采集 Node.js 日志(如文件或 stdout),在 Kibana 中可视化分析
  • 常规维护:
    • 版本发布:拉取新代码 → npm ci --only=production → pm2 restart myapp(或 systemctl restart myapp)
    • 回滚:切换代码版本 → 重启应用
    • 备份:定期备份代码、配置与环境变量(不要把 .env 提交到代码库)

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian如何部署和管理JS应用
本文地址: https://pptw.com/jishu/755970.html
Debian中JS错误处理机制怎么设置 Debian如何利用JS实现动态交互效果

游客 回复需填写必要信息