我尝试将我的node.js应用程序部署到Heroku,直到我尝试连接到它(打开应用程序)。得到的错误如下:
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);
当然,我搜索了这个问题,一些网站说这可能是一个超时,他们的错误连接和服务时间高达30000ms,其中超时是完全有意义的,但我远离30,所以我不知道这里的问题是什么。抛出该错误后,应用程序不会崩溃。非常感谢任何帮助。提前谢谢。
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