Open lmk123 opened 2 years ago
划词翻译的网站目前挂在我自己的个人域名下 https://hcfy.limingkai.cn,但是这样有一些问题:
limingkai.cn
于是,我购买了新的域名 hcfy.app 并准备将网站迁移到新域名上,顺便将划词翻译服务器的接口地址 hs-api.limingkai.cn 也迁移到 api.hcfy.app。
首先得让新域名也指向文档站才行。
划词翻译的文档站托管在 Netilfy 上,要让 hcfy.app 也指向文档站,只需要将它添加进 Netlify 即可。另外,我还将 www.hcfy.app 也加进去了,因为当我将 hcfy.app 设置为主要地址之后,www.hcfy.app 就会自动跳转到 hcfy.app。
但是,我还不能将主要访问地址从 hcfy.limingkai.cn 切换为 hcfy.app,因为服务器上的地址还没有变更。
由于“忘记密码”的功能是写在文档站里的,所以服务器里允许了来自 hcfy.limingkai.cn 的跨域请求,现在如果要将文档站的访问地址改为新域名,那么也要将服务器里的允许跨域的地址更新一下。
最终的迁移步骤如下:
这一切完成之后,就该迁移其它部分了,例如 Google Analytics 也应该换地址了。
在经过一段时间测试后,我发现 https://hcfy.app 偶尔会需要开代理才能打开,而 https://www.hcfy.app 则没有这个问题。
hcfy.app 使用 A 记录指向了 Netlify 提供的 IP 75.2.60.5,即使在出现问题的时候,这个 IP 也是可以 ping 通的,所以我估计是这个 IP 被墙了。这样一来,我只能把 hcfy.app 重定向到 www.hcfy.app 了,但是在 DNSPod 里,重定向功能只开放给备案了的域名,于是我决定将域名的 DNS 解析到 CloudFlare 里。
75.2.60.5
在 CloudFlare 里配置好 www 的 CNAME 记录之后,我访问了一下 www.hcfy.app,但是显示了一个跟 HTTPS 证书有关的 Error 525 的错误。经过一番搜索,我发现了这个地址:Why isn’t my SSL certificate provisioning automatically with Cloudflare & Netlify?
简单点说,默认情况向下,CloudFlare 在用户和 Netlify 做了一层代理,而 CloudFlare 自动给域名安装了 SSL 证书,但是 Netlify 也安装了证书,所以造成冲突了。而且,上面的链接中也提到不应该给 Netilfy 开启 CloudFlare 的代理,因为 Netlify 本身就有加速服务,这相当于给源站套了两层加速,但这没必要。
解决办法也很简单,只需要在 CloudFlare 里给 DNS 记录关闭代理就行了。关闭之后,会显示为“仅限 DNS”。
配置好 www.hcfy.app 之后,接下来就是在 CloudFlare 里添加两条页面转发规则了:
http://hcfy.app/* 301 https://www.hcfy.app/$1 https://hcfy.app/* 301 https://www.hcfy.app/$1
域名前多出的 www 总让我觉得不舒服,但是在查询了 Netlify 的文档(Apex domains and www subdomains)之后,我发现 CloudFlare 支持给顶级域名设置 CNAME,它们称之为 CNAME 扁平化的技术。
www
于是我删除了前面设置的页面跳转规则,然后将 hcfy.app 的 A 记录改为 CNAME 并指向了 Netlify,大约 5 分钟后,果然可以正常访问了——不得不感慨一句真香。
当我在 DNSPod 上设置将 hcfy.limingkai.cn 跳转到 hcfy.app 的时候,DNSPod 告诉我 hcfy.app 没备案所以不能跳转。现在有三个办法:
[[redirects]] from = "https://hcfy.limingkai.cn/*" to = "https://hcfy.app/:splat"
文档站的迁移很简单,但是接口地址的迁移让我犯了难。
用户认证的 cookie 是保存在 hs-api.limingkai.cn 的,如果我将接口地址切换到新域名,那么已经登录的用户全都需要重新登录一次,这显然是不行的。
然后我想到让 hs-api.limingkai 和 api.hcfy.app 共存。Node.js 确实支持给同一个服务器配置多个 SSL 证书,但是这样治标不治本——我还是不能把代码里的接口地址改为新域名。
暂时没想到什么好的办法,接口地址的迁移只能先搁置了。
划词翻译的网站目前挂在我自己的个人域名下 https://hcfy.limingkai.cn,但是这样有一些问题:
limingkai.cn
。于是,我购买了新的域名 hcfy.app 并准备将网站迁移到新域名上,顺便将划词翻译服务器的接口地址 hs-api.limingkai.cn 也迁移到 api.hcfy.app。
文档站的迁移
一、将新域名添加进 Netilfy
首先得让新域名也指向文档站才行。
划词翻译的文档站托管在 Netilfy 上,要让 hcfy.app 也指向文档站,只需要将它添加进 Netlify 即可。另外,我还将 www.hcfy.app 也加进去了,因为当我将 hcfy.app 设置为主要地址之后,www.hcfy.app 就会自动跳转到 hcfy.app。
但是,我还不能将主要访问地址从 hcfy.limingkai.cn 切换为 hcfy.app,因为服务器上的地址还没有变更。
二、将新域名加入服务器代码中
由于“忘记密码”的功能是写在文档站里的,所以服务器里允许了来自 hcfy.limingkai.cn 的跨域请求,现在如果要将文档站的访问地址改为新域名,那么也要将服务器里的允许跨域的地址更新一下。
开始迁移
最终的迁移步骤如下:
这一切完成之后,就该迁移其它部分了,例如 Google Analytics 也应该换地址了。
遇到的问题
在经过一段时间测试后,我发现 https://hcfy.app 偶尔会需要开代理才能打开,而 https://www.hcfy.app 则没有这个问题。
hcfy.app 使用 A 记录指向了 Netlify 提供的 IP
75.2.60.5
,即使在出现问题的时候,这个 IP 也是可以 ping 通的,所以我估计是这个 IP 被墙了。这样一来,我只能把 hcfy.app 重定向到 www.hcfy.app 了,但是在 DNSPod 里,重定向功能只开放给备案了的域名,于是我决定将域名的 DNS 解析到 CloudFlare 里。在 CloudFlare 里配置好 www 的 CNAME 记录之后,我访问了一下 www.hcfy.app,但是显示了一个跟 HTTPS 证书有关的 Error 525 的错误。经过一番搜索,我发现了这个地址:Why isn’t my SSL certificate provisioning automatically with Cloudflare & Netlify?
简单点说,默认情况向下,CloudFlare 在用户和 Netlify 做了一层代理,而 CloudFlare 自动给域名安装了 SSL 证书,但是 Netlify 也安装了证书,所以造成冲突了。而且,上面的链接中也提到不应该给 Netilfy 开启 CloudFlare 的代理,因为 Netlify 本身就有加速服务,这相当于给源站套了两层加速,但这没必要。
解决办法也很简单,只需要在 CloudFlare 里给 DNS 记录关闭代理就行了。关闭之后,会显示为“仅限 DNS”。
配置好 www.hcfy.app 之后,接下来就是在 CloudFlare 里添加两条页面转发规则了:
可是我还是想直接在 hcfy.app 显示内容
域名前多出的
www
总让我觉得不舒服,但是在查询了 Netlify 的文档(Apex domains and www subdomains)之后,我发现 CloudFlare 支持给顶级域名设置 CNAME,它们称之为 CNAME 扁平化的技术。于是我删除了前面设置的页面跳转规则,然后将 hcfy.app 的 A 记录改为 CNAME 并指向了 Netlify,大约 5 分钟后,果然可以正常访问了——不得不感慨一句真香。
将 hcfy.limingkai.cn 跳转到 hcfy.app
当我在 DNSPod 上设置将 hcfy.limingkai.cn 跳转到 hcfy.app 的时候,DNSPod 告诉我 hcfy.app 没备案所以不能跳转。现在有三个办法:
之后要做的事情
301 跳转的具体执行步骤
接口地址的迁移
文档站的迁移很简单,但是接口地址的迁移让我犯了难。
用户认证的 cookie 是保存在 hs-api.limingkai.cn 的,如果我将接口地址切换到新域名,那么已经登录的用户全都需要重新登录一次,这显然是不行的。
然后我想到让 hs-api.limingkai 和 api.hcfy.app 共存。Node.js 确实支持给同一个服务器配置多个 SSL 证书,但是这样治标不治本——我还是不能把代码里的接口地址改为新域名。
暂时没想到什么好的办法,接口地址的迁移只能先搁置了。