Skip to main content

静态服务器

概述

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

命令行运行

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

$ pm2 serve <path> <port>

如果您没有指定<path>,将使用当前文件夹,端口默认为8080。您可以使用与普通应用程序相同的选项,例如--name--watch

示例:

$ pm2 serve /var/www/html --port 3000

该命令将在 /var/www/html 目录下启动一个静态文件服务器,并将其绑定到 3000 端口。

caution

pm2 serve 命令只适用于静态文件服务器。如果您需要启动一个 Node.js 应用程序,应该使用 pm2 start 命令。

在进程文件中配置

您可以在进程文件中声明您希望提供一个指定目录:

module.exports = {
script: "serve",
env: {
PM2_SERVE_PATH: '.',
PM2_SERVE_PORT: 8080
}
}

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

单页应用SPA:全部重定向到index.html

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

$ pm2 serve --spa

进程文件配置如下:

module.exports = {
script: "serve",
env: {
PM2_SERVE_PATH: '.',
PM2_SERVE_PORT: 8080,
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>

进程文件配置如下:

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