DNS域名配置

为Pigsty Web服务配置自定义域名

Pigsty默认通过域名访问所有Web系统,尽管您可以使用 IP:Port的方式访问主要系统的Web界面,但这并不是推荐的行为。

因为有一些Web服务(例如Consul)监听的地址是 127.0.0.1 而非 0.0.0.0,因此您只能通过本机上的Nginx代理访问,并使用域名来区分。

太长;不看

在MacOS与Linux中,执行以下命令 bin/dns,配置Pigsty所需的DNS记录

sudo make dns

实际上是将以下记录写入 /etc/hosts 中(需要输入sudo密码),在Windows中则自行添加至:C:\Windows\System32\drivers\etc\hosts中。

# pigsty dns records
10.10.10.10 meta pigsty p.pigsty g.pigsty a.pigsty c.pigsty l.pigsty
10.10.10.10 api.pigsty adm.pigsty cli.pigsty ddl.pigsty lab.pigsty git.pigsty sss.pigsty
10.10.10.11 node-1   # sandbox node node-1
10.10.10.12 node-2   # sandbox node node-2
10.10.10.13 node-3   # sandbox node node-3
10.10.10.2  pg-meta  # sandbox vip for pg-meta
10.10.10.3  pg-test  # sandbox vip for pg-test

默认域名

默认情况下,Pigsty使用的域名包括:

10.10.10.10 meta pigsty p.pigsty g.pigsty a.pigsty c.pigsty l.pigsty                      # 必选
10.10.10.10 api.pigsty adm.pigsty cli.pigsty ddl.pigsty lab.pigsty git.pigsty sss.pigsty

所有Web服务的域名均通过 nginx_upstream 进行配置,例如,沙箱demo的域名配置如下:

nginx_upstream:                   # domain names and upstream servers
  - { name: home         , domain: pigsty     , endpoint: "10.10.10.10:80"   }
  - { name: grafana      , domain: g.pigsty   , endpoint: "10.10.10.10:3000" }
  - { name: loki         , domain: l.pigsty   , endpoint: "10.10.10.10:3100" }
  - { name: prometheus   , domain: p.pigsty   , endpoint: "10.10.10.10:9090" }
  - { name: alertmanager , domain: a.pigsty   , endpoint: "10.10.10.10:9093" }
  - { name: consul       , domain: c.pigsty   , endpoint: "127.0.0.1:8500"   } #== ^ required ==#
  - { name: postgrest    , domain: api.pigsty , endpoint: "127.0.0.1:8884"   } #== v optional ==#
  - { name: pgadmin      , domain: adm.pigsty , endpoint: "127.0.0.1:8885"   }
  - { name: pgweb        , domain: cli.pigsty , endpoint: "127.0.0.1:8886"   }
  - { name: bytebase     , domain: ddl.pigsty , endpoint: "127.0.0.1:8887"   }
  - { name: jupyter      , domain: lab.pigsty , endpoint: "127.0.0.1:8888"   }
  - { name: gitea        , domain: git.pigsty , endpoint: "127.0.0.1:8889"   }
  - { name: minio        , domain: sss.pigsty , endpoint: "127.0.0.1:9000"   }

配置自定义域名

您可以定制Pigsty各自系统使用的域名,例如在Pigsty的公开Demo中,就使用了不同的域名,并由互联网DNS服务商负责解析

nginx_upstream:                   # domain names and upstream servers
  - { name: home         , domain: home.pigsty.cc , endpoint: "10.10.10.10:80"   }  # default -> index.html (80)
  - { name: grafana      , domain: demo.pigsty.cc , endpoint: "10.10.10.10:3000" }  # pigsty grafana (3000)
  - { name: loki         , domain: l.pigsty.cc    , endpoint: "10.10.10.10:3100" }  # pigsty loki (3100)
  - { name: prometheus   , domain: p.pigsty.cc    , endpoint: "10.10.10.10:9090" }  # pigsty prometheus (9090)
  - { name: alertmanager , domain: a.pigsty.cc    , endpoint: "10.10.10.10:9093" }  # pigsty alertmanager (9093)
  - { name: consul       , domain: c.pigsty.cc    , endpoint: "127.0.0.1:8500"   }  # pigsty consul UI (8500) (domain required)
  - { name: postgrest    , domain: api.pigsty.cc  , endpoint: "127.0.0.1:8884"   }  #== v optional ==#
  - { name: pgadmin      , domain: adm.pigsty.cc  , endpoint: "127.0.0.1:8885"   }
  - { name: pgweb        , domain: cli.pigsty.cc  , endpoint: "127.0.0.1:8886"   }
  - { name: bytebase     , domain: ddl.pigsty.cc  , endpoint: "127.0.0.1:8887"   }
  - { name: jupyter      , domain: lab.pigsty.cc  , endpoint: "127.0.0.1:8888"   }
  - { name: gitea        , domain: git.pigsty.cc  , endpoint: "127.0.0.1:8889"   }
  - { name: minio        , domain: sss.pigsty.cc  , endpoint: "127.0.0.1:9000"   }

如果您没有购买互联网域名,则可以自定义的域名配置到您自己网络的DNS服务器中,或者干脆写入需要访问Pigsty Web服务的服务器的静态解析记录中。

例如在Nginx与MacOS上,您需要将上述域名记录写入 /etc/hosts (需要sudo权限),在Windows中,则需要添加至:C:\Windows\System32\drivers\etc\hosts中。


最后修改 2022-05-27: init commit (1e3e284)