美文网首页
Ubuntu下部署NodeJs项目

Ubuntu下部署NodeJs项目

作者: wildtree001 | 来源:发表于2017-05-26 12:02 被阅读1192次

    本文项目采用express为服务端,将指定访问路径指向某个页面的单页应用,内部路由由react-router管理

    • 1、将项目除node_modules目录外压缩上传
    sudo apt-get install unzip
    unzip xxx.zip
    
    • 2、npm install -g cnpm --registry=https://registry.npm.taobao.org
      将cnpm命令设为全局:ln -s xxxdir/bin/cnpm /usr/local/bin/cnpm
      采用cnpm下载依赖包:cnpm install
    • 3、用pm2来后台启动并管理项目:
    npm install pm2 -g
    ln -s xxxdir/bin/pm2 /usr/local/bin/pm2
    原先的启动方式:
    "scripts": {
        "start": "node server.bundle.js"
      }
    执行:npm run start
    pm2的方式:pm2 start server.bundle.js
    由于pm2有许多有用的配置,因此可以单独再建一个配置文件如pm2.json
    {
        "apps": [{
            "name": "duomaishop",
            "script": "server.bundle.js",
            "cwd": "./",
            "watch": [
                "build",
                "public"
            ],//发现改变自动重启
            "error_file": "./logs/app-err.log",
            "out_file": "./logs/app-out.log",
            "log_date_format": "YYYY-MM-DD HH:mm Z"
        }]
    }
    scripts可以添加启动方式:
    "scripts": {
        "start": "node server.bundle.js",
        "pm2": "pm2 start pm2.json"
      }
    执行:npm run pm2
    pm2常用命令:
    查看运行状态:pm2 list
    资源实时运行情况:pm2 monit
    应用详细部署状态:pm2 describe [appId]
    查看日志:pm2 logs
    重启应用:pm2 restart [appId]
    停止应用:pm2 stop [appName|appId|all]
    [使用 pm2-web 监控 pm2 服务运行状态](http://blog.csdn.net/dongshaoshuai/article/details/50292937)
    
    • 4、server.js部分代码
    var express = require('express')
    var compression = require('compression')
    var app = express()
    var path = require('path')
    app.use(compression());
    app.use('/build', express.static(path.join(__dirname, 'build')))
    app.set('views', path.join(__dirname, 'public'));
    app.engine('html', require('consolidate').handlebars);
    app.set('view engine', 'html');
    app.get('*', function(req, res) {
        res.render('index');
    });
    var PORT = process.env.PORT || 8080
    app.listen(PORT, function() {
        console.log('server running at localhost:' + PORT)
    })
    

    相关文章

      网友评论

          本文标题:Ubuntu下部署NodeJs项目

          本文链接:https://www.haomeiwen.com/subject/kjgtfxtx.html