ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Dokku 安装前如何配置 DNS A 记录与通配符子域名?

Dokku 安装前如何配置 DNS A 记录与通配符子域名? Dokku 安装前如何配置 DNS A 记录与通配符子域名【免费下载链接】dokkuA docker-powered PaaS that helps you build and manage the lifecycle of applications项目地址: https://gitcode.com/GitHub_Trending/do/dokku在安装 Dokku 之前需要先完成一件容易漏掉的事把域名的 DNS A 记录指到你的 Dokku 服务器 IP。Dokku 依靠 DNS 来区分同一台服务器上的不同应用——如果你使用域名example.tld两个应用node-js-app1和node-js-app2会分别通过node-js-app1.example.tld和node-js-app2.example.tld访问。因此在跑安装脚本之前就要先把主机名和通配符子域名都解析到服务器地址。完成本文操作后你应能做到在 Linux 上用host、dig等命令查询任意任意子域名.主机名.example.tld都返回你的服务器 IP并且能通过ssh root主机名.example.tld登录服务器。之后再按 安装文档 继续安装即可。适用前提DNS 配置文档 明确列出了三个前提假设你对 DNS 有基本了解DNS 把example.tld这样的名字解析成127.0.0.1这样的地址你已经注册了域名并且该域名指向你使用的托管 DNS 服务商或者你自己有一台运行 BIND 的 DNS 服务器你的服务器已接入互联网正准备按官方说明安装 Dokku——但此时先不要执行安装。Dokku 本身对域名的要求见 安装文档建议给服务器绑定至少一个域名这并非强制但绑定后访问应用更方便。文档给出了两种绑定方式的区别通配符域名*.domain.tld的 A 记录应用通过$APP.domain.tld访问单一域名domain.tld的 A 或 CNAME 记录应用通过domain.tld:$RANDOM_PORT访问。本文按通配符方案展开因为它支持按子域名直接访问应用。文档中同时存在使用域名根节点node-js-app.example.tld和使用子域名node-js-app.myserver.example.tld两种写法但 dns.md 中使用域名根节点一节自述work in progress、内容不完整因此下面只走文档给出完整步骤的子域名路径。第一步确认 Dokku 服务器的 IP 地址先 SSH 登录你的服务器用ifconfig或ip addr查看 IP 地址ip addr记下这个公网 IP后面两条 A 记录都要用到它。第二步在 DNS 中创建两条 A 记录假设你的域名是example.tld给 Dokku 服务器起的子域名是myserver以下example.tld与127.0.0.1均为文档示例值请替换为你自己的域名和上一步查到的真实服务器 IP主机名 A 记录进入你的托管 DNS 服务商后台创建一条名为myserver的A记录值填服务器 IP。这样myserver.example.tld就能解析到服务器。通配符 A 记录如果你的 DNS 服务商支持通配符再创建一条名为*.myserver的A记录值同样填服务器 IP。这样test.myserver.example.tld、xyzzy.myserver.example.tld等任意子域名都会解析到同一台服务器——这正是 Dokku 按子域名区分应用的机制。如果你自己用 BINDzone 文件对应的片段与文档示例一致文档示例值需替换为真实域名和 IP$ORIGIN example.tld $TTL 5m myserver IN A 127.0.0.1 *.myserver IN A 127.0.0.1托管 DNS 服务商界面不同但记录类型与内容相同按上面两条记录的名称和值在服务商后台创建即可。第三步验证解析结果DNS 变更依赖缓存文档提醒从几分钟到几天都有可能才传播完毕。所以查询结果可能来自缓存如果结果不对先确认变更是否已生效再排查配置。在 Linux 上用以下任一命令验证主机名记录host myserver.example.tld dig -t A myserver.example.tld nslookup myserver.example.tld文档给出的成功判断标准上述命令返回你的服务器 IP查询myserver.example.tld下的任意其他名字也都返回服务器 IP例如host test.myserver.example.tld host xyzzy.myserver.example.tld还能通过域名登录服务器ssh rootmyserver.example.tld。三条都满足说明 DNS 已经按 Dokku 的要求配好了。接下来执行安装并设置全局域名DNS 就绪后按 安装文档 安装最新稳定版Debian 系系统通过 apt-get 安装文档给出的命令DOKKU_TAGv0.38.27对应当前文档版本# for debian systems, installs Dokku via apt-get wget -NP . https://dokku.com/install/v0.38.27/bootstrap.sh sudo DOKKU_TAGv0.38.27 bash bootstrap.sh安装大约需要 5–10 分钟具体取决于网络速度。安装完成后还有一步收尾把全局域名设为刚才配好 A 记录的那个域名。文档示例dokku.me为文档示例值替换为你的域名例如myserver.example.tld文档要求该域名必须有一条 A 记录或 CNAME 指向服务器 IP# this domain should have an A record or CNAME pointing at your servers IP dokku domains:set-global dokku.me一个不需要自有域名的可选分支安装文档提到也可以把服务器 IP 追加.sslip.io来获得子域名支持例如dokku domains:set-global 10.0.0.2.sslip.io10.0.0.2为文档示例 IP替换为你的服务器 IP。全局域名可用dokku domains:report查看当前各应用与全局的 vhost 状态详见 domains 文档。限制与注意缓存如前所述DNS 变更生效时间不定验证时拿到的答案可能是缓存结果。通配符支持*.myserver记录需要你的 DNS 服务商支持通配符不支持时只能退化为单一域名方案应用经domain.tld:$RANDOM_PORT访问。域名根节点方案文档中使用域名根节点章节尚未写完本文不展开该路径如需使用以 dns.md 的后续更新为准全局域名可通过 domains 插件调整。系统要求安装侧要求 Ubuntu 22.04/24.04 或 Debian 11 x64架构为AMD64或arm64Docker 调度器最低 1GB 内存K3s 调度器为每节点 2GB详见 安装文档。【免费下载链接】dokkuA docker-powered PaaS that helps you build and manage the lifecycle of applications项目地址: https://gitcode.com/GitHub_Trending/do/dokku创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表