返回介绍

heroku

发布于 2024-04-15 22:23:13 字数 2283 浏览 0 评论 0 收藏 0

将 Nitro 应用程序部署到 Heroku。

Preset: heroku (switch to this preset)

Nitro 支持在 Heroku 上以最少的配置进行部署。

Using the Heroku CLI

  1. 创建一个新的 Heroku 应用程序。bash
    heroku create myapp
  2. 配置 Heroku 以使用 nodejs buildpack。bash
    heroku buildpacks:set heroku/nodejs
  3. 配置您的应用程序。bash
    heroku config:set NITRO_PRESET=heroku
  4. 确保您的 package.json 文件中有 startbuild 命令。json5
    "scripts": {
      "build": "nitro build", // or `nuxt build` if using nuxt
      "start": "node .output/server/index.mjs"
    }

With Nginx

  1. 添加 heroku Nginx buildpack 这里
  2. 更改为“nuxt.config”中预设的“节点”json
    "nitro":{
       "preset":"node",
    }
  3. 从 buildpack 文档的 Existing app 部分,需要 2 个关键步骤才能运行
    第 1 步:在“tmp/nginx.socket”的套接字上监听 第 2 步:当您的应用准备好接受连接时,创建一个文件“/tmp/app-initialized”
  4. 创建自定义应用程序运行器,例如: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
  5. 要创建“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')
    })
  6. 最后,在项目的根目录下创建文件“Procfile”,使用 Procfile,我们告诉 heroku 启动 nginx 并使用自定义的 apprunner.mjs 启动服务器
    web: bin/start-nginx node apprunner.mjs
  7. 奖励:创建文件 'config/nginx.conf.erb' 来自定义你的 nginx 配置。 使用节点预设,默认情况下不会生成静态文件处理程序,您可以使用 nginx 来服务器静态文件,只需将正确的位置规则添加到服务器块,或者强制节点预设为 通过将 serveStatic 设置为 true 来静态文件

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文