HTTP 経由で静的ファイルを公開
PM2 は、pm2 serve
機能により、静的ファイルを非常に簡単に公開できます。指定したフォルダから raw ファイルを提供したり、SPA(シングルページアプリケーション)で提供したりできます。
CLI
簡単なコマンドで HTTP 経由で静的ファイル(フロントエンドアプリなど)を提供します。
pm2 serve <path> <port>
<path>
を指定しない場合、現在のフォルダが使用されます。ポートについては、デフォルトは 8080
です。--name
や --watch
など、通常のアプリケーションと同じオプションを使用できます。
プロセスファイル
プロセスファイルで提供する特別なディレクトリを宣言できます
module.exports = {
script: "serve",
env: {
PM2_SERVE_PATH: '.',
PM2_SERVE_PORT: 8080
}
}
パスの指定に PM2_SERVE_PATH
、ポートの指定に PM2_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'
}
}