文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
heroku
将 Nitro 应用程序部署到 Heroku。
Preset: heroku
(switch to this preset)
Nitro 支持在 Heroku 上以最少的配置进行部署。
Using the Heroku CLI
- 创建一个新的 Heroku 应用程序。bash
heroku create myapp
- 配置 Heroku 以使用 nodejs buildpack。bash
heroku buildpacks:set heroku/nodejs
- 配置您的应用程序。bash
heroku config:set NITRO_PRESET=heroku
- 确保您的
package.json
文件中有start
和build
命令。json5"scripts": { "build": "nitro build", // or `nuxt build` if using nuxt "start": "node .output/server/index.mjs" }
With Nginx
- 添加 heroku Nginx buildpack 这里
- 更改为“nuxt.config”中预设的“节点”json
"nitro":{ "preset":"node", }
- 从 buildpack 文档的 Existing app 部分,需要 2 个关键步骤才能运行
第 1 步:在“tmp/nginx.socket”的套接字上监听 第 2 步:当您的应用准备好接受连接时,创建一个文件“/tmp/app-initialized” - 创建自定义应用程序运行器,例如:apprunner.mjs 在项目的根目录(或任何其他首选位置),在这个文件中,创建一个服务器,使用由节点预设生成的侦听器,然后在套接字上侦听详细信息 在构建包文档中js
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”js
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 来服务器静态文件,只需将正确的位置规则添加到服务器块,或者强制节点预设为 通过将 serveStatic 设置为 true 来静态文件
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论