无法更改域名

大家好,

我按照教程在 DigitalOcean Droplet 上安装了 Discourse,运行非常顺利。

安装时使用的是 discourse.mydomain.com,但现在我想将其迁移到不带子域名的 mydomain.com
显然,我已经正确设置了 DNS 记录,并通过从我的电脑和 Droplet 的命令行 ping 域名确认了更改已生效。一切正常。
我还将域名添加到了 Droplet 中。
我编辑了 app.yml 并修改了主机名,然后执行了 ./launcher rebuild app(已经重复了上百次)。

但之后,我的 Discourse 站点无论是通过旧 URL 还是新 URL 都无法访问。
如果我再次编辑 app.yml 并恢复原来的子域名后重新构建,站点又能正常工作了。

我已经花了三个小时尝试解决这个问题,肯定遗漏了什么简单的步骤。有人能告诉我我漏掉了什么吗?

谢谢,
Björn

您是否阅读了关于更改域名的文档?

是的,我正是这样做的。不知为何,Droplet 上的 Discourse 安装没有响应正确的域名。

您尝试更改域名的次数是多少?

您是否使用了 Let’s Encrypt?

您是否使用了任何类型的代理服务器或 Cloudflare?

到目前为止,我在几个小时内多次更改了我的域名(当然,第一次更改域名时它也无法正常工作)。
我确实使用了 Let’s Encrypt。我按照安装程序操作,它默认已启用。我没有输入 Let’s Encrypt 的邮件地址,因为据我了解,该地址仅用于通知。
没有代理服务器或 Cloudflare。

https://discourse.fpv-racing.nl

fpv-racing.nl 的 DNS 目前已恢复为之前的 IP 地址。

更改 DNS 记录可能需要 4 到 24 小时才能生效。

这不是即时完成的。虽然有办法缩短等待时间,但这取决于域名提供商。

DNS 并非问题所在。所有域名都已正确指向对应的 IP 地址。我已通过 dig 和 ping 命令,分别在 Mac 和 DigitalOcean Droplet 的命令行中进行了检查。

重新构建后检查了日志,似乎 Let’s Encrypt 存在问题。有人知道可能导致这些错误的原因吗?旧服务器上还有一个 Let’s Encrypt 证书。

run-parts: 正在执行 /etc/runit/1.d/letsencrypt
[Sun 04 Oct 2020 09:53:54 AM UTC] 使用的 CA: https://acme-v02.api.letsencrypt.org/directory
[Sun 04 Oct 2020 09:53:54 AM UTC] 创建账户密钥成功。
[Sun 04 Oct 2020 09:53:55 AM UTC] 正在注册账户:https://acme-v02.api.letsencrypt.org/directory
[Sun 04 Oct 2020 09:53:56 AM UTC] 已注册
[Sun 04 Oct 2020 09:53:56 AM UTC] ACCOUNT_THUMBPRINT='hbi1tfC1bozb6iAu8yXW0D107W5F98rnrTvvS5eosNU'
[Sun 04 Oct 2020 09:53:56 AM UTC] 正在创建域名密钥
[Sun 04 Oct 2020 09:53:57 AM UTC] 域名密钥位于此处:/shared/letsencrypt/fpv-racing.nl/fpv-racing.nl.key
[Sun 04 Oct 2020 09:53:57 AM UTC] 单个域名='fpv-racing.nl'
[Sun 04 Oct 2020 09:53:57 AM UTC] 正在为每个域名获取域名授权令牌
[Sun 04 Oct 2020 09:54:00 AM UTC] 正在获取域名='fpv-racing.nl' 的 Web 根目录
[Sun 04 Oct 2020 09:54:00 AM UTC] 正在验证:fpv-racing.nl
[Sun 04 Oct 2020 09:54:03 AM UTC] fpv-racing.nl: 验证错误:来自 https://fpv-racing.nl/404.shtml [2a06:2ec0:1::120] 的响应无效:
[Sun 04 Oct 2020 09:54:03 AM UTC] 请查看日志文件以获取更多详细信息:/shared/letsencrypt/acme.sh.log
加载文件 ca.cer 时出错
[Sun 04 Oct 2020 09:54:05 AM UTC] 使用的 CA: https://acme-v02.api.letsencrypt.org/directory
[Sun 04 Oct 2020 09:54:05 AM UTC] 单个域名='fpv-racing.nl'
[Sun 04 Oct 2020 09:54:05 AM UTC] 正在为每个域名获取域名授权令牌
[Sun 04 Oct 2020 09:54:07 AM UTC] 正在获取域名='fpv-racing.nl' 的 Web 根目录
[Sun 04 Oct 2020 09:54:07 AM UTC] 正在验证:fpv-racing.nl
[Sun 04 Oct 2020 09:54:11 AM UTC] fpv-racing.nl: 验证错误:来自 https://fpv-racing.nl/404.shtml [2a06:2ec0:1::120] 的响应无效:
[Sun 04 Oct 2020 09:54:11 AM UTC] 请查看日志文件以获取更多详细信息:/shared/letsencrypt/acme.sh.log
[Sun 04 Oct 2020 09:54:12 AM UTC] 正在安装密钥到:/shared/ssl/fpv-racing.nl.key
[Sun 04 Oct 2020 09:54:12 AM UTC] 正在安装完整链到:/shared/ssl/fpv-racing.nl.cer
cat: /shared/letsencrypt/fpv-racing.nl/fullchain.cer: 没有那个文件或目录
[Sun 04 Oct 2020 09:54:13 AM UTC] 使用的 CA: https://acme-v02.api.letsencrypt.org/directory
[Sun 04 Oct 2020 09:54:13 AM UTC] 正在创建域名密钥
[Sun 04 Oct 2020 09:54:13 AM UTC] 域名密钥位于此处:/shared/letsencrypt/fpv-racing.nl_ecc/fpv-racing.nl.key
[Sun 04 Oct 2020 09:54:13 AM UTC] 单个域名='fpv-racing.nl'
[Sun 04 Oct 2020 09:54:13 AM UTC] 正在为每个域名获取域名授权令牌
[Sun 04 Oct 2020 09:54:15 AM UTC] 正在获取域名='fpv-racing.nl' 的 Web 根目录
[Sun 04 Oct 2020 09:54:15 AM UTC] 正在验证:fpv-racing.nl
[Sun 04 Oct 2020 09:54:19 AM UTC] fpv-racing.nl: 验证错误:来自 https://fpv-racing.nl/404.shtml [2a06:2ec0:1::120] 的响应无效:
[Sun 04 Oct 2020 09:54:19 AM UTC] 请查看日志文件以获取更多详细信息:/shared/letsencrypt/acme.sh.log
加载文件 ca.cer 时出错
[Sun 04 Oct 2020 09:54:21 AM UTC] 使用的 CA: https://acme-v02.api.letsencrypt.org/directory
[Sun 04 Oct 2020 09:54:21 AM UTC] 单个域名='fpv-racing.nl'
[Sun 04 Oct 2020 09:54:21 AM UTC] 正在为每个域名获取域名授权令牌
[Sun 04 Oct 2020 09:54:23 AM UTC] 正在获取域名='fpv-racing.nl' 的 Web 根目录
[Sun 04 Oct 2020 09:54:23 AM UTC] 正在验证:fpv-racing.nl
[Sun 04 Oct 2020 09:54:27 AM UTC] fpv-racing.nl: 验证错误:来自 https://fpv-racing.nl/404.shtml [2a06:2ec0:1::120] 的响应无效:
[Sun 04 Oct 2020 09:54:27 AM UTC] 请查看日志文件以获取更多详细信息:/shared/letsencrypt/acme.sh.log
[Sun 04 Oct 2020 09:54:28 AM UTC] 正在安装密钥到:/shared/ssl/fpv-racing.nl_ecc.key
[Sun 04 Oct 2020 09:54:28 AM UTC] 正在安装完整链到:/shared/ssl/fpv-racing.nl_ecc.cer
cat: /shared/letsencrypt/fpv-racing.nl_ecc/fullchain.cer: 没有那个文件或目录
加载文件 ca.cer 时出错
加载文件 ca.cer 时出错

文件已写入,但大小为 0 字节:

root@discourse:/var/discourse# ls -l /var/discourse/shared/standalone/ssl
total 8
-rw-r--r-- 1 root root    0 Oct  4 09:54 fpv-racing.nl.cer
-rw------- 1 root root 3243 Oct  4 09:54 fpv-racing.nl.key
-rw-r--r-- 1 root root    0 Oct  4 09:54 fpv-racing.nl_ecc.cer
-rw------- 1 root root  302 Oct  4 09:54 fpv-racing.nl_ecc.key

当手动请求证书时(在此页面上找到了相关流程),我针对 fpv-racing.nl 遇到了相同的错误。而针对 discourse.fpv-racing.nl 则显示“成功”。

目前看来,我已在这一小时内触达了速率限制(最近失败的授权请求过多)。

我想这就是罪魁祸首……我还没有移除旧的 IPv6 地址。现在只能等待速率限制生效了:[frowning]

这确实是问题所在。我之前从未注意过 IPv6 设置……感谢各位的反馈 :slight_smile: