无法访问 Heroku 上的 Web 服务器
Posted
技术标签:
【中文标题】无法访问 Heroku 上的 Web 服务器【英文标题】:Unable to access web server on Heroku 【发布时间】:2019-09-27 13:33:10 【问题描述】:我关注this tutorial/guide。在本地,它使用localhost
作为域,8080
作为端口。
这是本地配置:
"dashboard" :
"oauthSecret": `$process.env.oauthSecret`,
"callbackURL": `http://localhost:8080/callback`,
"sessionSecret": "fakesessionsecret",
"domain": "localhost",
"port": 8080
,
但是现在,我想在 Heroku 上使用该应用程序,并通过 https://project-name.herokuapp.com
或通过我已经链接到提供的 DNS 的自定义域访问 Web 仪表板,格式为 dashboard.example.com
。
localhost
和/或该端口不适用于 Heroku,因此我不确定将其更改为什么才能使其正常工作。我已经尝试将域更改为xxx.herokudns.com
,将端口更改为process.env.PORT
,将域更改为我在 Heroku 中设置的自定义域 - 但是当我访问 URL 时,它们都会导致应用程序崩溃,状态为 503
。
据我所知,这些代码中使用了配置域和端口:
const express = require("express");
const app = express();
const passport = require("passport");
passport.use(new Strategy(
clientID: client.appInfo.id,
clientSecret: config.dashboard.oauthSecret, //from configuration
callbackURL: config.dashboard.callbackURL, //from configuration
scope: ["identify", "guilds"]
...
app.locals.domain = config.dashboard.domain;
...
app.listen(client.config.dashboard.port);
那么如何从 Heroku 访问 Web 应用程序?
【问题讨论】:
当您收到 503 时,您是否正在检查您的 Heroku 日志?域应为"dashboard.example.com"
,端口应为process.env.PORT
。更好的是,使用dotenv 和.env
文件在本地定义您的环境变量,并使用Heroku 的“设置”选项卡来设置生产环境变量(在这种情况下,只是domain
- port
已经设置在每次应用启动时为您服务)。
感谢您的建议,这确实有效。如果您介意,请回答问题,以便我将其标记为已解决!
很高兴它有帮助!
【参考方案1】:
当您收到 503 时,您是否正在检查您的 Heroku 日志?他们应该提供有关导致崩溃的具体信息。
域应为dashboard.example.com
,端口应为process.env.PORT
。更好的是,使用 dotenv 和 .env 文件在本地定义环境变量,并使用 Heroku 的“设置”选项卡在生产环境中设置环境变量(在这种情况下,只是 domain
- port
已经设置为您在每次应用启动时)。
【讨论】:
以上是关于无法访问 Heroku 上的 Web 服务器的主要内容,如果未能解决你的问题,请参考以下文章
无法推送到 Heroku '致命:无法访问..无法解析主机:(无);提供节点名或服务名,或未知'