• 项目上线


    一、创建web服务器

    1通过node创建web服务器

    2开启gzip配置

    3配置https服务

    4使用pm2管理应用

    1通过node创建web服务器

       创建node项目,并安装express ,通过express快速创建web服务器,将vue打包生成的dist文件夹,托管为静态资源即可,关键代码如下:

    1创建新的文件夹 ,并打开

    2初始化包管理配置文件:  package.json  ——npm init -y

    3添加第三方的包: npm i express -S

    4把dist复制到新文件夹中

    5新建app.js入口文件  内容如下

    const express = require('express')
    //创建web服务器
    const app = express()
    //托管静态资源
    app.use(express.static('./dist'))
    //启动web服务器
    app.listen(80, () => {
      console.log('web server running at http://127.0.0.1')
    })

     二、开启gzip配置

      使用gzip可以减小文件体积,使传输速度更快。

       可以通过服务器端使用Express做gzip压缩。配置如下:

         1安装相应包

          npm install compression -D  (或-S)

         2导入包

        const compression = require('compression');

       3启用中间件

    //一定要把这一行代码,写到静态资源托管之前

       app.use(compression());

    三、配置HTTPS服务

       为什么要启用HTTPS服务?

         传统的HTTP协议传输的数据都是明文,不安全

         采用HTTPS协议对传输的数据进行了加密处理,可以防止数据被中间人窃取,使用更安全。

     配置HTTPS服务

      申请SSL证书(https://freessl.org)

         1进入https://freessl.cn/官网,输入要申请的域名并选择品牌

         2输入自己的邮箱并选择相关选项。

        3验证DNS(在域名管理后台添加TXT记录)

        4验证通过之后,下载SSL证书(full_chain.pem公钥;private.key私钥)

    在后台项目中导入证书

    const https = reuqire('https')
    const fs = require('fs')
    const options = {
      cert: fs.readFileSync('./full_chain.pem'),
      key: fs.readFileSync('./private.key'),
    }
    https.createServer(options, app).listen(443)
    //默认情况下 http协议为80端口,https协议为443端口

    四、使用pm2管理应用   https://www.jianshu.com/p/e15fd72727fe

        pm2是一个进程管理工具,可以用它来管理你的node进程,并查看node进程的状态,当然也支持性能监控,进程守护,负载均衡等功能

         1在服务器中安装pm2:npm i pm2 -g

         2启动项目:pm2 start 脚本 --name 自定义名称

         3查看运行项目:pm2 ls

        4重启项目:pm2 restart 自定义名称

        5停止项目:pm2 stop 自定义名称(或序号)

        6删除项目:pm2 delete 自定义名称(或序号)

      

  • 相关阅读:
    Manjaro 安装与初步使用
    hp 820 G3 驱动安装不上
    Linux Mint
    PHP模板引擎原理
    报名系统跟商品购物有点类似,可以参考一下他们的ER图
    tp5接口开发流程(思路版)
    mysql中主键和外键的作用,主表和从表如何区分,以及如何使用联合查询和TP5的联合查询
    关于会员-考生-考生自定义表单-预览打印
    PHP unserialize()和serialize两者的用法
    如何解决复杂的问题?如何在未知的领域里,解决需求?
  • 原文地址:https://www.cnblogs.com/em2464/p/13750796.html
Copyright © 2020-2023  润新知