您的 PostgreSQL 服务器上安装什么?
- 来自官方 PGDG 软件源的 PostgreSQL 18
- 超级用户角色 yonetici,以及一个名为 uygulama 的空数据库
- 仅允许通过 TLS 的远程连接,使用 SCRAM-SHA-256 密码认证
- 自签名的服务器证书
- psql 命令行客户端
- 配置位于 /etc/postgresql/18/main,我们的补充设置在 conf.d/seturack.conf 中
- 防火墙为数据库开放 5432 端口,为 SSH 开放 22 端口
PostgreSQL 需要多大的配置?
PostgreSQL 没有官方的 RAM 数值,因为需要多少取决于数据量和并发连接数。经验上,小项目从 1 GB 起步,生产环境的应用可以考虑 2 到 4 GB。本次安装不改动内存设置,所以 shared_buffers 保持默认值。官方文档建议,在只运行数据库且有 1 GB 以上内存的服务器上,起始值取 RAM 的 25%。升级配置后请自行调高。磁盘之后无法缩小。
| 用途 | 配置 | 价格 | 选择 |
|---|---|---|---|
| 入门 | 1 GB RAM · 1 vCore · 25 GB NVMe | $2.58/月 | |
| 中等 | 2 GB RAM · 1 vCore · 40 GB NVMe | $4.01/月 | |
| 强劲 | 4 GB RAM · 2 vCore · 60 GB NVMe | $6.89/月 |
适合谁?
- 应用运行在别处、希望数据库独占一台服务器的开发者
- 想自己用超级用户管理角色、扩展和设置的团队
- 基于 pgvector 或 PostGIS 等扩展的项目
- 应用托管在土耳其、希望数据库也放在伊斯坦布尔的人
下单之后会发生什么?
- 设定配置并完成付款。
- 服务器启动后,PostgreSQL 会自行安装。在我们的真实服务器测试中大约需要 3 分钟。
- 在面板的“概览”标签页中,复制“连接地址”“登录名”和“密码”三行。
- 在您自己的电脑上进行连接测试,命令如下:psql 'postgresql://yonetici:PASSWORD@IP:5432/uygulama?sslmode=require'
- 为您的应用单独创建一个角色和一个数据库,语句如下:CREATE ROLE api LOGIN PASSWORD 'new-password'; CREATE DATABASE api OWNER api;
- 限制访问来源,先运行 ufw delete allow 5432/tcp,然后再运行 ufw allow from YOUR_IP to any port 5432
每台服务器都包含
- 价格含每日备份
- 不限流量
- 完整 root 权限
- 之后可升级或降配 RAM 和 CPU,并扩大磁盘
- 位置:Istanbul · IST-1。
须知
- 5432 端口对互联网开放。如果只有您自己的服务器会连接,请在防火墙中把它限制为这些服务器的 IP 地址。
- 没有 TLS 或没有密码的远程连接会被拒绝,所以 sslmode=disable 不起作用。
- 证书是自签名的。sslmode=require 会加密连接,但不会验证服务器身份;如需 verify-full,请安装您自己的证书。
- 面板中显示的 yonetici 角色是超级用户,请不要把它放进应用的连接字符串。
- 小版本补丁通过 apt 从 PGDG 软件源获取。运行 apt upgrade,以及用 pg_upgrade 做大版本升级,由您自行负责。
- 面板会一直显示安装时的密码。如果您用 ALTER ROLE 修改了密码,请自行妥善保管新密码。
PostgreSQL 常见问题
如何连接我的 PostgreSQL 服务器?
从面板中取得连接地址和密码,使用这个字符串:postgresql://yonetici:PASSWORD@IP:5432/uygulama?sslmode=require。psql、DBeaver、pgAdmin 以及任何支持连接字符串的客户端都可以用它连接。
PostgreSQL 对互联网开放吗?如何关闭?
是的,5432 端口是开放的,但只接受使用 SCRAM 密码的 TLS 连接。如果只想允许特定地址,请运行 ufw delete allow 5432/tcp,然后 ufw allow from YOUR_IP to any port 5432。
PostgreSQL 需要多少 RAM?
PostgreSQL 没有官方的 RAM 数值。经验上,小项目从 1 GB 起步比较合适,生产环境的应用可以考虑 2 到 4 GB。升级配置后也请调高 shared_buffers;官方建议取 RAM 的 25%。
从 Node.js 连接时为什么会出现证书错误?
node-postgres 驱动看到 sslmode=require 时会校验证书,并拒绝自签名证书。请在连接字符串中使用 sslmode=no-verify。连接依然是加密的,只是不检查服务器的身份。
可以安装 pgvector 或 PostGIS 吗?
可以。服务器上已经配置好 PGDG 软件源,所以以 root 身份运行 apt install postgresql-18-pgvector,然后在您的数据库中执行 CREATE EXTENSION vector。PostGIS 在同一软件源中,包名为 postgresql-18-postgis-3。
备份包含我的数据库吗?
包含。您的服务器每晚备份,保留最近 7 天,费用已包含在价格中,数据库文件作为磁盘的一部分一同备份。如果想单独保留某个数据库或某张表的副本,还可以使用 pg_dump。