node 服务器部署

node 服务器部署

Posted by SkioFox on April 28, 2018

前提条件

  1. 在服务器上安装node
  2. 安装git
  3. 安装pm2

这里列举node和pm2的最简洁的安装方法

   centos使用yum ubuntu apt-get 安装

   https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora
   
  // 获取操作系统版本 
  uname -a
  # // 上node官网查找对应版本:https://npm.taobao.org/mirrors/node/v10.16.0/node-v10.16.0-linux-x64.tar.xz
  # // 从远端拉去到服务器并保存到 /usr/local/ 
  # cd /usr/local/
  # wget https://npm.taobao.org/mirrors/node/v10.16.0/node-v10.16.0-linux-x64.tar.xz 
  # //解压
  # tar -xvf node-v10.16.0-linux-x64.tar.xz
  # // 重命名
  # mv node-v10.16.0-linux-x64 nodejs
  # cd nodejs/bin
  # node -v // 可显示版本说明下载成功
  # // 将服务器旧版本替换:通过软链的方式将新的可执行程序添加到环境变量中npm和node:
  # ln -s /usr/local/nodejs/bin/node /usr/local/bin
  # ln -s /usr/local/nodejs/bin/npm /usr/local/bin
  # vim /etc/profile=>更改PATH:export PATH=/usr/local/bin:$PATH
  # source /etc/profile =>执行node -v 检查
  安装node指定版本 10.x
  wget -qO- https://deb.nodesource.com/setup_10.x | sudo -E bash -
  sudo apt-get install -y nodejs(解决权限问题 chmod  777 ./xxxx,用sudo就没关系)

  管理node最好的方法是3工具(npm nrm nvm)

  1. 先安装nvm

  curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
  或者
  wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

  2,设置环境变量

  source   ~/.bashrc

  3. 查看 NVM和版本list和本机版本

  nvm --version  nvm ls-remote nvm ls

  4. 安装需要的node版本

  nvm install 10.13.
  
  5. 查看默认版本

  nvm alias default node

  6. nrm安装使用

  npm install -g nrm 测速 nrm test 切换源 nrm use xxx 添加源 nrm add yourcompany http://xxxx

  // 克隆项目到服务器上(注意克隆要切换到正确分支) 并安装依赖 sudo npm install
  // 开发环境跑测试(npm run serve...)=>注意生产环境和开发环境的不同,生产环境部署时的请求地址或者端口的变化,需
  // 将相应的配置文件更改
  // 打包项目 sudo npm run build
  // 让node进程长链接使用:nohup node prod.server.js 和 forever 都失败了
  // 安装pm 2
  // npm install -g pm2
  // 编写pm2 配置文件pm2.yml
      apps:
      - script: ./prod.server.js
          name: my-music-app
          env_production:
            NODE_ENV: production
            HOST: localhost
            PORT: 9000
  // 运行node项目
  pm2 start pm2.yml --env production

pm2

  • 使用

你可以简单地在全局安装 npm install -g pm2,然后用 PM2 启动应用即可。

你可以使用 配置脚本的方式如上去启动应用。

例如:app.json

{
    "name": "your-app",
    "script": "inde.js",
    "watch": true,
    "ignore_watch": ["logs", "assets", "views"],
    "env": {
        "NODE_ENV": "production",
        },
    "instances": 1,
    "log_date_format": "YYYY-MM-DD hh:mm:ss",
}

然后用 pm2 start process.json 来启动

  • 常见命令
npm install -g pm2
pm2 start app.js        // 启动
pm2 start app.js -i max //启动 使用所有CPU核心的集群
pm2 stop app.js         // 停止
pm2 stop all            // 停止所有
pm2 restart app.js      // 重启
pm2 restart all         // 重启所有
pm2 delete  app.js      // 关闭

pm2 list  //显示所有应用
pm2 monit //显示应用监控面板
pm2 logs  //显示实时 log
pm2 restart [id] //重启应用
pm2 stop [id]  //停止应用
pm2 kill [id]  //关闭应用

nohup 方式

nohup node app.js &

forever 方式

npm install forever -g
forever start app.js    //启动
forever stop app.js     //关闭
forever stopall         //关闭全部
forever restart app.js  //重启
forever restartall      //重启全部