PostgreSQL 可用于 Web 应用程序

PostgreSQL 可用于 Web 应用程序

我有一台安装了 PostgreSQL 的服务器,并且有一些脚本不断修改数据库中的数据。 PostgreSQL 在其默认端口 5432 上运行。

我希望能够从我的网站连接到数据库,这只是通过 godaddy 购买的标准托管服务。

我知道我无法访问数据库,因为它无法通过网络访问,但是是否可以使我的数据库在线可用,以便我的网站可以与其通信?

答案1

您需要允许 GoDaddy 服务器与外部连接。托管网站的情况并非总是如此:因为它们只希望允许其他人在端口 80 或 443 上进行连接,并可能向托管网站的电子邮件或数据库服务器发送连接,所以所有其他连接可能会被防火墙阻止。

然后你需要允许你的服务器接受连接。一种解决方法是允许在 GoDaddy 服务器和 PostgreSQL 服务器之间建立 VPN。否则,PostgreSQL 服务器的防火墙必须向 GoDaddy(或任何人)开放。这会带来安全风险。

使用 SSH,您可以使用从 psql 计算机到 apache 计算机的端口转发(也称为 ssh 隧道)。您可以从任一侧打开连接(但语法略有不同)。例如

ssh useronpostgres@postgresmachine [other options] -L 5432:localhost:5432

在 webmachine 上运行,将在 webmachine 上创建本地 PostgreSQL 端口,以便网站可以“看到”实际在 PostgreSQL 机器上运行的本地 PostgreSQL。

最后,您的网站需要能够“对话”PostgreSQL。简单的连接是不够的,即拥有可用的端口是必要的,但还不够本身。如果站点是用 Perl 或 PHP 开发的,则存在带有 pgsql/psql 驱动程序的 PDO 模块;他们目前很可能是不是安装后,通常选择 MySQL,而不是 PostgreSQL。如果确实如此,您将需要请求配置更改。

还有一些数据库的“瘦连接器”,允许通过 REST API 对 MySQL 或 PostgreSQL 进行 REST 访问(例如逮捕数据库或其他;也可以看看这个问题);如果 PostgreSQL 服务器上还没有 Web 服务器,您可以尝试安装其中之一。这将允许通过端口 80 从网站进行访问,但在语法和功能上有一些限制,但不需要 GoDaddy 方面的专门驱动程序。您需要评估最后这是否是可接受的妥协。

还可以通过安装来提供对 PostgreSQL 的广泛访问phpPg管理员

相关内容