温馨提示×

Debian与Node.js的集成方法

小樊
48
2025-12-30 08:49:01
栏目: 编程语言

Debian与Node.js的集成方法

一 安装与环境准备

  • 更新系统并安装基础工具:
    • 执行:sudo apt update && sudo apt upgrade -y
    • 安装构建工具(可选,用于原生模块编译):sudo apt install -y build-essential
  • 选择一种安装方式(三选一):
    • APT 官方仓库安装:
      • 执行:sudo apt install -y nodejs npm
    • NodeSource 二进制分发库(指定版本,如 18.x):
      • 执行:curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
      • 然后:sudo apt install -y nodejs
    • NVM 多版本管理(适合开发与多项目切换):
      • 执行:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
      • 加载:source ~/.bashrc
      • 安装与默认版本:nvm install --lts && nvm alias default node
  • 验证安装:node -vnpm -v

二 运行与进程管理

  • 运行示例应用:
    • 初始化:npm init -y
    • 安装依赖(示例):npm install express
    • 启动:node app.js(或 node server.js
  • 使用进程管理器 PM2 守护进程与开机自启:
    • 全局安装:sudo npm install -g pm2
    • 启动应用:pm2 start app.js --name my-node-app
    • 设置开机自启:pm2 startup 并按提示执行输出命令,随后 pm2 save
    • 常用:pm2 listpm2 logs my-node-apppm2 restart my-node-app

三 反向代理与对外发布

  • 安装 Nginx 并配置反向代理(将 80/443 转发至应用端口如 3000):
    • 安装:sudo apt install -y nginx
    • 编辑站点配置(示例):sudo nano /etc/nginx/sites-available/default
    • 配置片段:
      server {
        listen 80;
        server_name your_domain.com;
        location / {
          proxy_pass http://localhost: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
  • 生产建议:为域名配置 HTTPS/TLS(可使用 Let’s Encrypt)。

四 npm与全局路径配置

  • 避免全局安装权限问题(推荐用户级全局目录):
    • 创建目录:mkdir -p ~/.npm-global
    • 配置前缀:npm config set prefix '~/.npm-global'
    • 写入 PATH:echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc && source ~/.bashrc
  • 中国大陆可加速下载:
    • 设置镜像:npm config set registry https://registry.npmmirror.com
  • 如需自定义全局目录,也可在用户目录设置 prefix/cache 并更新环境变量(避免写入系统目录)。

五 安全与运维最佳实践

  • 安全与更新:
    • 启用 HTTPS 保护传输数据
    • 定期更新 Node.jsnpm 修复安全漏洞
  • 性能与可观测性:
    • 充分利用 异步 I/O流(Stream) 处理大数据
    • 多核利用:使用 cluster 模块或 PM2 集群模式
    • 监控与分析:结合 perf_hooks 或第三方 APM 工具
  • 运行环境管理:
    • 生产环境优先使用 LTS 版本
    • 多项目/多版本场景使用 NVM 隔离与切换。

0