如何将 IPFS 守护进程变成 public 网关?

How to make an IPFS daemon into a public gateway?

我所以我在 ubuntu VPS 上有一个 IPFS 守护进程 运行,据报道它正在监听......

API server listening on /ip4/127.0.0.1/tcp/5001
Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080
Daemon is ready

我还为 ipfs.domain.com 设置了 DNS A 记录以指向服务器 IP 地址。我还添加了 ipfs.domain.com 的 DNS TXT 记录作为...

dnslink=/ipns/QmeQe5FTgMs8PNspzTQ3LRz1iMhdq9K34TQnsCP1jqt8wV

所以我的第一个问题是如何 link ipfs.domain.com/ip4/127.0.0.1/tcp/8080

我的第二个问题是,如果服务器由于某种原因 offline/unreachable 怎么办,是否有某种回退到其他网关的方法?

我的第三个问题是如何指定缓存规则,以便图像可以在未来至少 1 周内缓存,并且网站可以获得变化:Accept-Encoding header

尝试让网关监听 0.0.0.0 而不是 127.0.0.1,否则它不会接受不是来自本地计算机的连接。

之后,你的DNS配置应该是好的。

dnslink 专门用于 linking 到 IPFS 网络中托管的内容(因此不适用于您的情况)。您不能 link 到您的节点,但您可以在您的节点 ID 下发布内容。有关其工作原理的更多信息,请点击此处:https://github.com/ipfs/examples/tree/master/examples/websites

关于缓存,没有必要指定内容应该被缓存的时间量,因为它都是不可变的,永远不会改变。一旦请求,您的节点将保留它直到垃圾收集运行,然后除固定内容外的所有内容都将被删除,并且必须从网络中重新获取。

确保守护程序在主机 0.0.0.0 上 运行,您可以使用 ipfs config:

配置
sudo ipfs config Addresses.API /ip4/0.0.0.0/tcp/5001
sudo ipfs config Addresses.Gateway /ip4/0.0.0.0/tcp/9001

要将域映射到您的网关,您可以使用负载平衡器,例如 nginx。