教程 > pm2 教程 > pm2 基础 阅读:7

pm2 通过 http 提供静态文件

PM2 可以使用 pm2 serve 功能非常轻松地提供静态文件。 它支持从指定文件夹提供原始文件,或者您可以使用它提供 SPA(单页应用程序)。

使用简单的命令通过 http 提供你的静态文件(如前端应用程序):

$ pm2 serve <path> <port>

如果不指定<path>,将使用当前文件夹,对于端口,默认值为 8080。你还可以使用与普通应用程序相同的选项,如 --name--watch

我们在 workspace/node/static 目录中新建 index.html 文件,内容如下

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>迹忆客(jiyik.com)</title>
</head>
<body>
    <h1>我的 pm2 serve 静态文件</h1>
</body>
</html>

使用下面命令开启服务

$ pm2 serve ./static 8081

打开浏览器,地址栏输入 http://127.0.0.1:8081/index.html 结果如下

pm2 serve 静态文件示例


Process 文件

您可以在 process 文件中声明您希望提供一个特殊的目录:

process.js

module.exports = {
  script: "serve",
  env: {
    PM2_SERVE_PATH: './static',
    PM2_SERVE_PORT: 80811
  }

只需要在 env 变量中添加 PM2_SERVE_PATHPM2_SERVE_PORT 来指定路径和端口,默认与CLI相同。


服务 SPA:全部重定向到 index.html

要自动将所有查询重定向到 index.html,请使用 --spa 选项:

$ pm2 serve --spa

也可以通过 process 文件

module.exports = {
  script: "serve",
  env: {
    PM2_SERVE_PATH: './static',
    PM2_SERVE_PORT: 8081,
    PM2_SERVE_SPA: 'true',
    PM2_SERVE_HOMEPAGE: './index.html'
  }
}

使用密码保护访问

要基本保护对公共文件的访问,可以使用 --basic-auth-username--basic-auth-password

$ pm2 serve --basic-auth-username <username> --basic-auth-password <password>

也可以通过 process 文件

module.exports = {
  script: "serve",
  env: {
    PM2_SERVE_PATH: './static',
    PM2_SERVE_PORT: 8081,
    PM2_SERVE_BASIC_AUTH: 'true',
    PM2_SERVE_BASIC_AUTH_USERNAME: 'example-login',
    PM2_SERVE_BASIC_AUTH_PASSWORD: 'example-password'
  }
}

查看笔记