Strapi CMS,Heroku错误:没有针对主机的pg_hba.conf条目

7

三个月前,我创建了一个 Strapi 应用,已经部署在 Heroku 上,并且一切正常运作。我使用的本地环境是 macOS 10.13.6 和 node 14.15.4。

数据库的配置是在名为 database.js 的文件中创建的,该文件位于 rootApp/config/env/production/database.js。以下是这个文件(database.js)中的所有配置:

const parse = require('pg-connection-string').parse;
const config = parse(process.env.HEROKU_POSTGRESQL_MAROON_URL);
module.exports = ({ env }) => ({
  defaultConnection: 'default',
  connections: {
    default: {
      connector: 'bookshelf',
      settings: {
        client: 'postgres',
        host: "ec2-35-169-184-61.compute-1.amazonaws.com",
        port: 5432,
        database: "d3d9tcukxxx",
        username: "mwtwuvkwxxxx",
        password: "42f0337xxxxx",
      },
      options: {
                ssl:true,
      },
    },
  },
});

但是在三个月后(现在),我通过heroku logs --tail检查时发现这些应用出现了错误,错误信息如下:

error error: no pg_hba.conf entry for host "3.86.36.125", user "mwtwuvkwtrqpir", database "d3d9tcukrk5fgh", SSL off

我使用的是Strapi 3.2.5,并部署在Heroku Postgres的免费计划(Hobby)上。 希望大家能帮我解决这个问题,也希望能帮到其他遇到同样问题的人。 谢谢。

1个回答

10

我们在Heroku实例上遇到了相同的问题,并最近找到了解决方法。

rejectUnauthorized添加到数据库配置中似乎是有效的。

config/database.js

module.exports = ({ env }) => ({
  defaultConnection: 'default',
  connections: {
    default: {
      connector: 'bookshelf',
      settings: {
        client: 'postgres',
        host: env('DATABASE_HOST', 'localhost'),
        port: env.int('DATABASE_PORT', 5432),
        database: env('DATABASE_NAME', 'strapi'),
        username: env('DATABASE_USERNAME', 'strapi'),
        password: env('DATABASE_PASSWORD', 'strapi'),
        schema: env('DATABASE_SCHEMA', 'public'), // Not Required
        ssl: {
          rejectUnauthorized: env.bool('DATABASE_SSL_SELF', false), // For self-signed certificates
        },
      },
      options: {
        ssl: env.bool('DATABASE_SSL', false),
      },
    },
  },
});

我并不能完全地归功于自己,正是 Strapi 论坛上的这篇帖子让我找到了答案: https://forum.strapi.io/t/error-no-pg-hba-conf-entry-for-host-ssl-off/3409

随后又参考了这个链接: https://strapi.io/documentation/developer-docs/latest/setup-deployment-guides/configurations.html#database


1
太好了,伙计!我几天前也从这些链接中找到了解决方法:https://forum.strapi.io/t/error-no-pg-hba-conf-entry-for-host-ssl-off/3409 ,谢谢。 - Yues Hafiyan
在禁用SSL的Azure PostgreSQL服务器上无法工作。Strapi版本3.6.8。 - Geka P
对于Azure PostgreSQL和Strapi 4,我必须启用SSL,否则无法正常工作。我需要从网络选项卡下载证书(.pem文件),然后在Strapi中添加以下环境变量:DATABASE_SSL=true cipher=TLS_AES_256_GCM_SHA384 cert=/path/to/cert/cert-name.pem - undefined
感谢您在这里分享您的解决方案。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接