Providers
Heroku
将 Nitro 应用部署到 Heroku。
预设:heroku
¥Preset: heroku
使用 Heroku CLI
¥Using the heroku CLI
- 创建一个新的 Heroku 应用。
heroku create myapp
- 配置 Heroku 以使用 nodejs 构建包。
heroku buildpacks:set heroku/nodejs
- 配置你的应用。
heroku config:set NITRO_PRESET=heroku
- 确保
package.json
文件中包含start
和build
命令。"scripts": { "build": "nitro build", // or `nuxt build` if using nuxt "start": "node .output/server/index.mjs" }
使用 nginx
¥With nginx
- 添加 Heroku Nginx 构建包 此处。
- 在你的
nuxt.config
中更改为 'node' 预设"nitro": { "preset":"node", }
- 从 buildpack 文档的“现有应用”部分来看,需要两个关键步骤才能运行。
步骤 1:在 'tmp/nginx.socket' 上监听套接字,步骤 2:当你的应用准备好接受连接时,创建一个 '/tmp/app-initialized' 文件。 - 在项目根目录(或任何其他首选位置)创建自定义应用运行器,例如 apprunner.mjs。在此文件中,使用 Node 预设生成的监听器创建一个服务器,然后按照 buildpack 文档中的详细说明监听套接字。
import { createServer } from 'node:http' import { listener } from './.output/server/index.mjs' const server = createServer(listener) server.listen('/tmp/nginx.socket') //following the buildpack doc
- 要创建 'tmp/app-initialized' 文件,请使用 nitro 插件,在项目根目录(或任何其他首选位置)创建文件 'initServer.ts'。
import fs from "fs" export default defineNitroPlugin((nitroApp) => { if((process.env.NODE_ENV || 'development') != 'development') { fs.openSync('/tmp/app-initialized', 'w') } })
- 最后,在项目根目录创建文件 'Procfile',使用 Procfile 文件,我们告诉 Heroku 启动 nginx 并使用自定义 apprunner.mjs 启动服务器。
web:bin/start-nginx node apprunner.mjs - 额外内容:创建文件 'config/nginx.conf.erb' 以自定义你的 nginx 配置。使用节点预设时,默认情况下不会生成静态文件处理程序。你可以使用 nginx 来服务器静态文件,只需在服务器块中添加正确的位置规则即可;或者,通过设置 serveSta 强制节点预设为静态文件生成处理程序。