域名管理

配置本地或公网域名访问 Pigsty 服务

使用域名代替 IP 地址访问 Pigsty 的各项 Web 服务。


快速开始

将以下静态解析记录添加到 /etc/hosts

10.10.10.10 i.pigsty g.pigsty p.pigsty a.pigsty

将 IP 地址替换为实际 Pigsty 节点的 IP。


为什么使用域名

  • 比 IP 地址更易于记忆
  • 灵活指向不同 IP
  • 通过 Nginx 统一管理服务
  • 支持 HTTPS 加密
  • 防止某些地区的 ISP 劫持
  • 允许通过代理访问内部绑定的服务

DNS 机制

DNS 协议:将域名解析为 IP 地址。多个域名可以指向同一个 IP。

HTTP 协议:使用 Host 头将请求路由到同一端口(80/443)上的不同站点。


默认域名

Pigsty 预定义了以下默认域名:

域名服务端口用途
i.pigstyNginx80/443默认首页、本地仓库与统一入口
g.pigstyGrafana3000监控与可视化
p.pigstyVictoriaMetrics8428VMUI/PromQL 入口
a.pigstyAlertManager9059告警路由
m.pigstyMinIO9001对象存储控制台

解析方式

本地静态解析

在客户端机器的 /etc/hosts 中添加条目:

# Linux/macOS
sudo vim /etc/hosts

# Windows
notepad C:\Windows\System32\drivers\etc\hosts

添加内容:

10.10.10.10 i.pigsty g.pigsty p.pigsty a.pigsty m.pigsty

内网动态解析

Pigsty 内置了 dnsmasq 服务作为内网 DNS 服务器。配置被管理的节点使用 INFRA 节点作为 DNS 服务器:

node_dns_servers: ['${admin_ip}']   # 使用 INFRA 节点作为 DNS 服务器
node_dns_method: add                # 将其添加到现有 DNS 服务器列表

通过 dns_records 参数配置 dnsmasq 解析的域名记录:

dns_records:
  - "${admin_ip} i.pigsty"
  - "${admin_ip} m.pigsty sss.pigsty api.pigsty adm.pigsty cli.pigsty ddl.pigsty"

公网域名

购买域名并添加 DNS A 记录指向公网 IP:

  1. 在域名服务商处购买域名(如 example.com
  2. 配置 A 记录指向服务器公网 IP
  3. infra_portal 中使用真实域名

内置 DNS 服务

Pigsty 在 INFRA 节点上运行 dnsmasq 作为 DNS 服务器。

相关参数

参数默认值说明
dns_enabledtrue是否启用 DNS 服务
dns_port53DNS 监听端口
dns_records见下文默认 DNS 记录列表

默认的 DNS 记录:

dns_records:
  - "${admin_ip} i.pigsty"
  - "${admin_ip} m.pigsty sss.pigsty api.pigsty adm.pigsty cli.pigsty ddl.pigsty"

动态 DNS 注册

Pigsty 会自动为 PostgreSQL 集群和实例注册 DNS 记录:

  • 实例级 DNS<pg_instance> 指向实例 IP(如 pg-meta-1
  • 集群级 DNS<pg_cluster> 指向主库 IP 或 VIP(如 pg-meta

集群级 DNS 目标由 pg_dns_target 参数控制:

说明
auto自动选择:有 VIP 用 VIP,否则用主库 IP
primary始终指向主库 IP
vip始终指向 VIP(需启用 VIP)
none不注册集群 DNS
<ip>指定固定 IP 地址

通过 pg_dns_suffix 可为集群 DNS 添加后缀。


节点 DNS 配置

Pigsty 管理被纳管节点的 DNS 配置。

静态 hosts 记录

通过 node_etc_hosts 配置静态 /etc/hosts 记录:

node_etc_hosts:
  - "${admin_ip} i.pigsty sss.pigsty"
  - "10.10.10.20 db.example.com"

DNS 服务器配置

参数默认值说明
node_dns_methodaddDNS 配置方式
node_dns_servers['${admin_ip}']DNS 服务器列表
node_dns_options见下文resolv.conf 选项

node_dns_method 可选值:

说明
add添加到现有 DNS 服务器列表前面
overwrite完全覆盖 DNS 服务器配置
none不修改 DNS 配置

默认的 DNS 选项:

node_dns_options:
  - options single-request-reopen timeout:1

HTTPS 证书

Pigsty 默认使用自签名证书。可选方案包括:

  • 忽略警告,使用 HTTP
  • 信任自签名 CA 证书(下载地址 http://<ip>/ca.crt
  • 使用真实 CA 或通过 Certbot 获取免费公网域名证书

详见 CA 与证书 文档。


扩展域名

Pigsty 扩展预留了以下域名用于各种应用服务:

域名用途
adm.pigstyPgAdmin 管理界面
ddl.pigstyBytebase DDL 管理
cli.pigstyPgWeb 命令行界面
api.pigstyPostgREST API 服务
lab.pigstyJupyter 实验环境
git.pigstyGitea Git 服务
wiki.pigstyWiki.js 文档
noco.pigstyNocoDB
supa.pigstySupabase
dify.pigstyDify AI
odoo.pigstyOdoo ERP
mm.pigstyMattermost

使用这些域名需要在 infra_portal 中配置相应的服务。


管理命令

./infra.yml -t dns            # 完整配置 DNS 服务
./infra.yml -t dns_config     # 重新生成 dnsmasq 配置
./infra.yml -t dns_record     # 更新默认 DNS 记录
./infra.yml -t dns_launch     # 重启 dnsmasq 服务

./node.yml -t node_hosts      # 配置节点 /etc/hosts
./node.yml -t node_resolv     # 配置节点 DNS 解析器

./pgsql.yml -t pg_dns         # 注册 PostgreSQL DNS 记录
./pgsql.yml -t pg_dns_ins     # 仅注册实例级 DNS
./pgsql.yml -t pg_dns_cls     # 仅注册集群级 DNS

最后修改 2026-01-09: update the infra arch docs (4e0a6a3)