【问题标题】:Heroku error code H13 when trying to open app尝试打开应用程序时 Heroku 错误代码 H13
【发布时间】:2021-02-18 08:57:23
【问题描述】:

我尝试将我的 node.js 应用程序部署到 Heroku,在我尝试连接到它(打开应用程序)之前它工作正常。 错误是get如下:

2021-02-18T00:16:03.975921+00:00 heroku[router]: at=error code=H13 desc="Connection closed without response" method=GET path="/" host=gtdb.herokuapp.com request_id=16579da6-aa8e-4184-8e1c-7ac9680d0078 fwd="-myipaddresswhichidontwanttoshare-" dyno=web.1 connect=0ms service=1ms status=503 bytes=0 protocol=https

我的代码:

const express = require("express");
const https = require("https");
app = express();
const options = {
    key: fs.readFileSync("./server.key"),
    cert: fs.readFileSync("./server.crt")
};
const server = https.createServer(options, app);
server.listen(process.env.PORT);

当然,我搜索了这个问题,一些网站说它可能是超时,他们的错误有高达 30000 毫秒的连接和服务时间,超时会很有意义,但我离 30 秒还很远,所以我不知道是什么问题就在这里。 应用程序在抛出该错误后不会崩溃。 任何帮助深表感谢。提前致谢。

【问题讨论】:

    标签: node.js express heroku hosting


    【解决方案1】:

    Heroku 服务器由其负载平衡器控制,该负载平衡器终止 SSL 并将请求发送到您的服务器而不使用 SSL。

    所以你应该在 Heroku 上使用 HTTP 服务器而不是 HTTPS

    您可以使用此软件包 https://github.com/paulomcnally/node-heroku-ssl-redirect/ 将来自客户端的任何传入 HTTP 流量重定向到 HTTPS。

    https://mishkaorakzai.medium.com/how-to-redirect-your-node-js-app-hosted-on-heroku-from-http-to-https-50ef80130bff

    【讨论】:

    • 感谢您的回答。当我尝试实施您推荐的软件包时,出现以下错误:app.use(sslRedirect()); TypeError: sslRedirect is not a function
    • @KnechtNoobrecht github.com/paulomcnally/node-heroku-ssl-redirect/issues/… import herokuSSLRedirect from 'heroku-ssl-redirect' const sslRedirect = herokuSSLRedirect.defaultconst sslRedirect = require('heroku-ssl-redirect').default
    • 当我尝试导入它时,我收到错误Cannot use import statement outside a module。所以我将我的文件更改为 app.mjs,在 package.json 中将“类型”设置为“模块”并添加这些代码行以便我的其他导入工作:import { createRequire } from 'module' const require = createRequire(import.meta.url); 现在当我尝试从另一个文件导入我的 mongodb 模型时@ 987654331@ 我得到SyntaxError: The requested module './models/book.js' does not provide an export named 'Book'。我要导入的文件以module.exports = Book; 结尾
    • 使用const sslRedirect = require('heroku-ssl-redirect').default解决,不导入。
    猜你喜欢
    • 2020-06-13
    • 1970-01-01
    • 2016-12-11
    • 1970-01-01
    • 2018-11-30
    • 2020-06-27
    • 2020-07-31
    • 1970-01-01
    • 2021-09-10
    相关资源
    最近更新 更多