一个数据库出现Heroku问题:错误R10( Boot 超时)->Web进程无法在启动的60秒内绑定到$PORT

c9x0cxw0  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(118)

我可以进行本地连接,并且在仅将DATABASE_URL更改为托管在Heroku上的另一个数据库时也可以进行连接,但是我无法使特定的Azure托管数据库工作,这总是会导致超时错误:
错误R10( Boot 超时)-〉Web进程无法在启动的60秒内绑定到$PORT
db.js

const dbnexus = new Sequelize(process.env.DATABASE_URL, {
  dialect: 'postgres',
  logging: true,
  operatorsAliases: Sequelize.Op.Aliases,
  dialectOptions: {
    ssl: {
      require: true,
      rejectUnauthorized: false,
    },
  },
});

app.js

dbnexus
  .authenticate()
  .then(() => dbnexus.sync())
  .then(() =>
    app.listen(process.env.PORT || 3000, (res) => {
      console.log(`[server]: App is listening on ${process.env.PORT}`);
    })
  )
  .catch((e) => {
    console.log('[server]: Server Crashed');
    console.log(e);
  });

我的Heroku环境:

DATABASE_URL = [matches local environment DATABASE_URL connection string]
PGSSLMODE = require
SSLMODE = require

关于这个错误的所有其他问题都是关于如何设置端口的问题,但是我是按照他们建议的方式来做的,而且它可以与不同的数据库一起工作,所以我不认为这是真正的问题。

6ie5vjzr

6ie5vjzr1#

我发现了这个问题。Heroku不使用静态IP,所以服务器不允许它通过。我不知道为什么这会产生一个超时错误,而不是更多的信息。我最终使用了一个代理(QuotaGuard与qgtunnel是我唯一可以与Sequelize和Postgres一起工作的东西),然后将创建的静态IP列入白名单。

相关问题