admin管理员组

文章数量:1558091

# 通过 node 创建 web 服务器

1. 创建文件夹,在文件夹中打开终端

2. 初始化包管理工具

    npm init -y

3. 安装 express   

    npm install express --save

4. 安装 connect-history-api-fallback(实现history, 普通服务器不需要)

npm install connect-history-api-fallback --save

5. 安装 compression (开启 gzip 配置)

使用 gzip 可以减小文件体积,使传输速度更快, 可以通过服务器端使用 Express 做 gzip 压缩

    npm install compression -S

6. 创建一个 dist 文件夹, 把要部署的项目复制进来

7. 新建入口文件( app.js),  输入以下内容 (不需要 history, 删掉 history 变量)

const express = require('express') // 导入 express
const compression = require('compression') // 导入 compression
const history = require('connect-history-api-fallback') // 导入 connect-history-api-fallback
const app = express() // 创建 web 服务器
const childProcess = require('child_process')

app.use(compression()) // 启用中间件(一定要写在托管静态资源前面)
app.use(history()) // 配置vue history模式,这里千万要注意,要在static静态资源上面
app.use(express.static('./dist')) // 托管静态资源

// 启动 web 服务器(手机可以访问 )
const hostname = getIPAddress()
const port = 88

app.listen(port, hostname, function (err) {
  if (err) {
    console.error('启动服务器失败!')
  } else {
    console.log(`web server running at http://${hostname}:${port}`)
    // 浏览器打开
    childProcess.exec(`start http://${hostname}:${port}`)
  }
})

// 获取本机ip地址
function getIPAddress() {
  var interfaces = require('os')workInterfaces()
  for (var devName in interfaces) {
    var iface = interfaces[devName]
    for (var i = 0; i < iface.length; i++) {
      var alias = iface[i]
      if (
        alias.family === 'IPv4' &&
        alias.address !== '127.0.0.1' &&
        !alias.internal
      ) {
        return alias.address
      }
    }
  }
}

  8. 终端运行 node app.js, 返回  'web server running at http://本机ip+端口', 则项目运行成功

  9. 访问地址:

http://本机ip+端口

#  HTTPS 服务说明

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

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

# 使用 pm2 管理应用

开启 pm2 当你不关机情况下,关闭终端命令,网站还是会存在!

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

    1. pm2需要全局安装(必须在管理员中运行): npm install -g pm2

    2. 启动项目:pm2 start 启动的入口文件(一般为app.js) --name 名称

    3. 重命名项目: pm2 start 启动的入口文件 --name 重命名

    4. 查看运行项目:pm2 ls

    5. 重启项目:pm2 restart 名称

    6. 重新启动所有项目: pm2 restart all

    7. 停止项目:pm2 stop 自定义名称

    8. 停止所有项目:pm2 stop all

    9. 删除项目:pm2 delete 自定义名称

    10. 删除所有项目:pm2 delete all

    11. 查看某个项目具体情况: pm2 describe 自定义名称

    12. 查看pm2的日志: pm2 logs 自定义名称

    13. 查看项目的资源消耗情况:  pm2 monit

本文标签: 服务器node