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记录

  1. sudo make dns

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

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

默认域名

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

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

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

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

配置自定义域名

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

  1. nginx_upstream: # domain names and upstream servers
  2. - { name: home , domain: home.pigsty.cc , endpoint: "10.10.10.10:80" } # default -> index.html (80)
  3. - { name: grafana , domain: demo.pigsty.cc , endpoint: "10.10.10.10:3000" } # pigsty grafana (3000)
  4. - { name: loki , domain: l.pigsty.cc , endpoint: "10.10.10.10:3100" } # pigsty loki (3100)
  5. - { name: prometheus , domain: p.pigsty.cc , endpoint: "10.10.10.10:9090" } # pigsty prometheus (9090)
  6. - { name: alertmanager , domain: a.pigsty.cc , endpoint: "10.10.10.10:9093" } # pigsty alertmanager (9093)
  7. - { name: consul , domain: c.pigsty.cc , endpoint: "127.0.0.1:8500" } # pigsty consul UI (8500) (domain required)
  8. - { name: postgrest , domain: api.pigsty.cc , endpoint: "127.0.0.1:8884" } #== v optional ==#
  9. - { name: pgadmin , domain: adm.pigsty.cc , endpoint: "127.0.0.1:8885" }
  10. - { name: pgweb , domain: cli.pigsty.cc , endpoint: "127.0.0.1:8886" }
  11. - { name: bytebase , domain: ddl.pigsty.cc , endpoint: "127.0.0.1:8887" }
  12. - { name: jupyter , domain: lab.pigsty.cc , endpoint: "127.0.0.1:8888" }
  13. - { name: gitea , domain: git.pigsty.cc , endpoint: "127.0.0.1:8889" }
  14. - { 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)