我们的 Heroku 服务器端口 443 被阻塞
Posted
技术标签:
【中文标题】我们的 Heroku 服务器端口 443 被阻塞【英文标题】:Our Heroku server port 443 is blocked 【发布时间】:2021-08-13 02:16:34 【问题描述】:我们的 Heroku 机器自动启动,之后我们的 API 无法访问,我检查了日志,它说:Relocating dyno to a new server,所以机器出了点问题,日志显示我的节点进程正在运行,但是无法访问通过 https 或 http 的 API,当我运行 ss -tulw 时,它显示 443 和 80 都没有在监听,而且我在机器上找不到打开端口的方法,在 heroku 机器上,我没有更改 bash_profile 或导出 PORT=443 的方法,因为不允许从机器内部启动节点进程,我只能通过使用“git push heroku master”,process.env 重新部署来启动我们的节点进程。每次重新部署我的节点进程时,PORT 都会显示不同的端口,我们的应用程序已经完全无法被我们的客户访问两天了,我们在 heroku 支持中心创建了一张票,但是两天没有人采取行动,请帮忙。谢谢!
【问题讨论】:
【参考方案1】:您不能在测功机上打开端口。 Dynos 不在 443 或 80 上监听。
Dyno 被 Heroku 分配了一个端口。您应该在应用程序启动时绑定到该端口。
您的 repo 中应该有一个 Procfile,它可以在正确的端口上启动应用程序,例如:
web: npm run server -- --port $PORT
更多信息:
Setting the port for node.js server on Heroku on procfile restarting dynos【讨论】:
感谢您的回答,我的网站在前两天发生“将dyno迁移到新服务器”之前已经可以访问一年多了,代码如下:var port = normalizePort(process. env.PORT || '3100'); app.set('端口', 端口); var server = http.createServer(app); server.listen(端口); server.on('监听', onListening);我的 procfile 只有一行: web: DEBUG=./:* npm start 因为它不再工作了,所以我尝试设置配置变量,将 Procfile 更改为 web: DEBUG=./:* npm start -- --port $PORT 或使用 443 或 80,但没有任何效果。那么有什么线索吗?谢谢 "你的 repo 中应该有一个 Procfile,它在正确的端口上启动应用程序" 那么正确的端口是什么或在哪里设置呢?当我登录 console.debug('Env process.env.PORT: ', process.env.PORT);它打印出任意端口,为什么测功机重新定位到新服务器后,我的网站突然变得无法访问?我没有更改任何代码,也没有接触服务器,然后突然无法访问。非常感谢您的帮助! 另外,当我的网站在过去一年工作时,我使用带有默认 443 的 https 进行访问,它运行良好,现在相同的 url 不再工作,我什至没有触摸服务器也没有重新部署,并且只发现日志消息:“relocating dyno to a new server”,很奇怪,看来我没有完全控制机器的付费计划,到目前为止,我的票没有得到公司的支持。 再一次:你没有设置端口。您在日志中看到的“任意”端口是您在应用程序中使用process.env.PORT
绑定的端口。这就对了。 Heroku 路由器监听 443 并在这个“任意”端口上将请求路由到您的应用程序。如果您的应用程序在网络上不可见,那么这可能完全是另一个问题。您是否尝试过从不同的 DNS 访问您的应用程序?请求是否到达 Heroku 路由器?
你是对的,支持说他们的路由器有问题,现在已经解决了。非常感谢您的帮助。以上是关于我们的 Heroku 服务器端口 443 被阻塞的主要内容,如果未能解决你的问题,请参考以下文章
peerjs 在 loaclhost 上工作,但不在 heroku 上?