操作步骤
配置域名解析
在自己的域名运营商处添加三个解析记录,这里以我想用的域名wehome.qiuyedx.com
和前端Canister ID4blhg-uyaaa-aaaag-qjpqq-cai
为例。
- 添加 CNAME 记录,Host 为自定义域名
wehome.qiuyedx.com
,Value 为wehome.qiuyedx.com.icp1.io
- 添加 TXT 记录,Host 为
_canister-id
,Value 为前端 Canister ID4blhg-uyaaa-aaaag-qjpqq-cai
- 添加 CNAME 记录,Host 为
_acme-challenge
,Value 为_acme-challenge.wehome.qiuyedx.com.icp2.io
添加自定义域名配置
在IC项目中添加一些配置,以便边缘节点知道有哪些可用的自定义域名。
- 在
dfx.json
中前端 Canister 的source
字段中添加一个新的目录,如domain-assets
:
"source": [
"src/ic_test_frontend/dist",
"src/ic_test_frontend/domain-assets"
],
- 在这个
domain-assets
目录中新建一个名为.well-known
的文件夹,并在该文件夹中新建一个名为ic-domains
的文件,在其中列出所有的自定义域名和子域名:
wehome.qiuyedx.com
- 在
domain-assets
目录中新建一个名为.ic-assets.json
的文件,并写入:
[
{
"match": ".well-known",
"ignore": false
}
]
目录结构
现在,目录结构应该大致为:
project-root/
├─ frontend/
│ ├─ domain-assets/
│ │ ├─ .well-known/
│ │ │ ├─ ic-domains
│ │ ├─ .ic-assets.json
部署 Canister
完成配置后,使用dfx deploy --ic
或其他命令部署 Canister 到主网上,dfx
会根据.ic-assets.json
的配置,将.well-known/ic-domains
文件包含在部署中。
注册自定义域名
在终端中执行以下命令,这里以我使用的域名wehome.qiuyedx.com
为例:
curl -sLv -X POST \
-H 'Content-Type: application/json' \
https://icp0.io/registrations \
--data @- <<EOF
{
"name": "wehome.qiuyedx.com"
}
EOF
如果调用成功,我们将收到一个 JSON 响应,其中正文中包含请求 ID,我们可以使用该响应来查询注册请求的状态:
{"id":"REQUEST_ID"}
注册大概需要几分钟,我们可以在浏览器中访问以下 URL 来使用上面这个请求 ID 查询注册请求的处理状态:
https://icp0.io/registrations/REQUEST_ID
如果显示Available
则表示注册请求已成功处理,我们就可以直接使用自定义域名,如wehome.qiuyedx.com
来访问自己的前端服务了~
Comments NOTHING