想更好的了解IPFS?试着将网站托管在IPFS上吧!

使用IPFS来托管一个简单的单页网站是了解IPFS的一个好方法。本文为有关此操作的分步指南。

01建立您的网站

假设您在目录中有一个静态网站mysite。为了将其发布为站点,请安装IPFS并确保IPFS守护程序正在运行:
$ ipfs daemon
然后在目录中添加您的网站:
$ ls mysite
img index.html
$ ipfs add -r mysite
addedQmcMN2wqoun88SVF5own7D5LUpnHwDA6ALZnVdFXhnYhAs mysite/img/spacecat.jpg
added QmS8tC5NJqajBB5qFhcA1auav14iHMnoMZJWfmr4k3EY6w mysite/img
added QmYh6HbZhHABQXrkQZ4aRRSoSa6bb9vaKoHeumWex6HRsT mysite/index.html
added QmYeAiiK1UfB8MGLRefok1N7vBTyX8hGPuMXZ4Xq1DPyt7 mysite/
文件夹名称旁边的最后一个哈希mysite/是要记住的哈希,请立即调用$SITE_CID。然后您可以通过http://localhost:8080/ipfs/$SITE_CID

在浏览器中打开或使用wget或curl从命令行中进行本地测试。

要从另一个ipfs节点查看它,可以在浏览器

http://gateway.ipfs.io/ipfs/$SITE_CID中尝试。您可以在添加了站点文件的网络内部或外部的另一台设备上的浏览器中进行。

这些哈希值很难记住。让我们看一些摆脱它们的方法。

02编辑您的DNS记录

假设您拥有域名your.domain并且可以访问注册商的控制面板来管理它的DNS条目。您可以创建一个DNS TXT记录(DNSLink),使用键your.domain.和上一节中的值dnslink=/ipfs/$SITE_CIDwhere $SITE_CID

创建该记录并传播之后,您应该可以找到它。

$ dig +noall +answer TXT your.domain
your.domain.            60      IN      TXT     “dnslink=/ipfs/$SITE_CID”
现在,您可以访问您的网站http://localhost:8080/ipns/your.domain您也可以在网关上尝试此操作

http://gateway.ipfs.io/ipns/your.domain

有关DNSLink的其他问题请访问DNSLink网站以获取教程,示例和常见问题解答。

03使用IPNS

每次更改网站时,都将不得不重新发布它,使用新值更新DNS TXT记录,$SITE_CID然后等待其传播。您可以使用IPNS(星际命名系统)来解决该限制。您可能已经注意到,/ipns/而不是上一部分/ipfs/中的更新链接。

IPNS用于IPFS网络中的可变内容。它相对易于使用,可以让您更改网站而无需每次都更新dns记录。

要为您的内容启用IPNS,请运行以下命令,其中$SITE_CID第一步中的哈希值是。

$ ipfs name publish $SITE_CIDPublished to $PEER_ID: /ipfs/$SITE_CID
您将需要记下并保存该值以$PEER_ID用于后续步骤。加载网址http://localhost:8080/ipns/$PEER_ID

http://gateway.ipfs.io/ipns/$PEER_ID确认此步骤。

返回到注册商的控制面板,使用your.domainto 键更改DNS TXT记录

dnslink=/ipns/$PEER_ID,等待该记录传播,然后尝试使用URL 

http://localhost:8080/ipns/your.domain

http://gateway.ipfs.io/ipns/your.domain。

注意:使用IPNS更新网站时,在传播更新时,可能会从两个不同的已解决的哈希加载资产。在更新完全传播之前,这可能会导致URL过期或资产丢失。

04将您的域指向IPFS

您现在在ipfs / ipns上拥有一个网站,但是您的访问者无法通过访问该网站:http://your.domain。我们所能做的就是请求http://your.domain由IPFS网关守护程序解决。返回到您的注册商的控制面板,并添加一个A记录,其键为

your.domainipfs,守护程序的IP地址和键值,该守护程序在端口80上侦听HTTP请求(例如gateway.ipfs.io)。

如果您不知道计划使用的守护程序的IP地址,则可以使用以下命令找到它:

$ nslookup gateway.ipfs.io
记下返回的IP地址。为每个IPv4地址创建一个A记录(例如209.94.90.1ipfs.io)。为每个IPv6地址创建AAAA记录(例如,2602:fea2:2::1用于ipfs.io)。

注意:ipfs.io网关IP地址不会更改,因此您可以设置它们或忘记它们。如果您在不控制IP地址的情况下使用自定义网关,那么它们可能会更改,则可能需要定期重新检查它们并更新DNS记录(如果存在)。

访客的浏览器将发送your.domain其请求的Host标头。ipfs网关将识别并your.domain查找您所在域的DNS TXT的值,然后在其中提供文件

/ipns/your.domain/

如果将your.domainAAAAA记录指向IP地址gateway.ipfs.io,然后等待DNS传播,那么任何人都应该可以访问ipfs托管的站点,而无需进行任何其他配置http://your.domain

05使用CNAME

您还可以使用CNAME记录来指向网关的DNS记录。这样,网关的IP地址将自动更新。但是,您需要将TXT记录的密钥从your.domain更改为

_dnslink.your.domain

因此,通过创建CNAME your.domaingateway.ipfs.io并添加

_dnslink.your.domain记录与

dnslink=/ipns/<your peer id>您可以承载网关的IP地址。

 

 

本文来自投稿,不代表中文资讯网(www.ipfsnews.cn)的立场,

文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。

如若转载,请注明出处:https://www.ipfsnews.cn/1069.html

发表评论

登录后才能评论