美文网首页
6.2基于node服务器部署静态网站

6.2基于node服务器部署静态网站

作者: 空无一码 | 来源:发表于2019-01-08 13:25 被阅读64次

    本文分享的是如何基于koa在云服务器上部署纯静态网站。

    服务器的选择

    服务器市场产品繁多、功能和性能定位不一,由于厂商的服务器技术水平有所差别,在服务器可靠性、稳定性和可服务性上也存在某些程度上的不同。

    服务器的选型也一个比较大的话题,大的将有物理服务器和近几年兴起的云服务器。从功能上又可分为Web服务器,文件服务器、邮件服务器、数据库服务器和多媒体服务器等。
    而服务器上的操作系统可以分为windows和linux系列服务器等。

    多数服务器都是使用linux系统,而Linux系统又分为开源的Ubuntu系列、centos系统等,个人建站多用前者,而笔者所任职过的公司都用的是centos。

    本文分享的是基于阿里云配置操作系统为centos7.x服务器的部署,而且是基于pm2部署node服务,仅作参考。

    关于pm2

    开发时,我们需要npm run …来启动一个node项目,如果终端被关掉,程序跟着停止,特别是启动多个项目时,多有不便,特别是部署到线上的时候,如果报错了可能直接终止整个运行,supervisor或nodemon一般只用在开发环境的。

    而线上我们一般使用PM2,它是带有负载均衡功能的node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等。

    安装pm2

    打开我们本地的终端,输入如下命令登录远程服务器:

    ssh 用户名@云服务器IP地址
    // 例子 ssh root@173.123.34.55
    

    之后输入密码,登录成功后输入下面命令,-g是安装到全局(若提示npm命令不存在,则需要安装node或是环境配置有问题):

    npm install -g pm2
    

    常用命令:

    • 启动: pm2 start app.js
    • 停止:pm2 stop app_name|app_id
    • 停止所有:pm2 stop all
    • 重启:pm2 restart app_name|app_id
    • 删除:pm2 delete app_name|app_id
    • 查看某一个进程的信息:pm2 describe app_name|app_id
    • 查看所有的进程:pm2 list
    • 查看所有的进程状态:pm2 status

    为项目配置启动脚本

    在package.json文件中加入启动脚本

      "scripts": {
        "start": "nodemon index",
        "deploy": "pm2 start index.js", // 新加脚本
        "test": "echo \"Error: no test specified\" && exit 1"
      },
    

    然后我们在项目目录下直接运行如下命令就可以了:

    npm run deploy
    

    发现会自动打开浏览器,我们的系统是要在不同的环境下运行的,不同的环境可能是不同的端口号,不同的数据库地址,数据库用户和密码,并且可能有的需要自动重启有的不需要自动重启。

    我们可以通过对环境的NODE_ENV赋值来区分不同的环境,在通过命令行在运行程序的时候对其进行赋值,不同的场景赋值不一样,在程序中读取这个值来判断是那种场景,所以我们需要调整一下index.js文件:

    if (process.env.NODE_ENV  !== 'production') {
        cp.exec('open http://localhost:8888/');
    }
    

    这样只有在开发环境时,才自动打开浏览器, 并且修改启动脚本为:

     "deploy": "NODE_ENV=production pm2 start index.js",
    

    这样执行的就是在生产环境下启动,再次启动就去掉了开发环境下才用到的自动打开浏览器功能。

    代码上传到服务器

    可以采取多种方式,常用的是通过代码管理平台,如github或企业内部的gitlab,最简单的就是执行如下命令:

    scp 用户名@云服务器IP地址:
    // 例子 scp root@173.123.34.55:
    

    注意后面的冒号不能少哦,上传成功后,登录服务器后进入用户主目录,就能看到该文件,一般上传前我们会压缩,上传成功后再解压,解压以后在根目录下输入前面类似的部署命令即可:

    npm install && npm run deploy
    

    下安装项目依赖,成功后使用pm2启动node服务,这样一个静态网站就可以通过阿里云服务器IP地址加端口访问了。

    而要想通过域名访问,就得去购买一个域名并且去网管局备案。

    相关文章

      网友评论

          本文标题:6.2基于node服务器部署静态网站

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