美文网首页
将Web服务部署到IPFS上

将Web服务部署到IPFS上

作者: 袁俊亮技术博客 | 来源:发表于2020-05-11 15:05 被阅读0次

将Web服务部署到IPFS上

: 本文操作环境为ubuntu 18.04

安装ipfs

  1. 安装go语言环境
sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt update
sudo apt install golang-go
  1. 安装go-ipfs
wget https://dist.ipfs.io/go-ipfs/v0.5.0/go-ipfs_v0.5.0_linux-amd64.tar.gz
tar -xvzf go-ipfs_v0.5.0_linux-amd64.tar.gz
cd go-ipfs
sudo bash install.sh

检查go-ipfs版本

ipfs --version

> ipfs version 0.5.0

上传web目录

  1. 启动ipfs
ipfs daemon

返回如下信息

Initializing daemon...
go-ipfs version: 0.5.0
Repo version: 9
System version: amd64/linux
Golang version: go1.13.10
Swarm listening on /ip4/127.0.0.1/tcp/4001
Swarm listening on /ip4/172.16.20.111/tcp/4001
Swarm listening on /ip6/::1/tcp/4001
Swarm listening on /p2p-circuit
Swarm announcing /ip4/127.0.0.1/tcp/4001
Swarm announcing /ip4/172.16.20.111/tcp/4001
Swarm announcing /ip6/::1/tcp/4001
API server listening on /ip4/127.0.0.1/tcp/5001
WebUI: http://127.0.0.1:5001/webui
Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080
Daemon is ready
  1. 添加web目录

方式一: 命令行添加上传

ipfs add -r ./blog

返回如下信息

added QmbC2eAXxPY58CCDjJo2Dr5C2wWrq6ALyRxrTVJaNmrq6P blog/Golang redis 操作初体验 .html
added QmYqSE8nz3CbAb7uT8kCPpVEEKvriRwTT3gphXBSzLAJiU blog/Go语言导出excel文件(.xlsx).html
added QmXkaA8JMaLtVpmLiag8D1kkZsdcb9TqLjRCYZr1knBxK9 blog/index.html
added QmdfsZhvPc7Mf7VzWw2PAoTWdaPBa56JBqkVGq1yFnRp3J blog/构建Nodejs脚手架.html
added QmSKK986gpytABxLD5kE8jUK9bPo4iU4A8WTz5VQpDqCmE blog

其中最后一行QmSKK986gpytABxLD5kE8jUK9bPo4iU4A8WTz5VQpDqCmE 表示整个项目的CID

方式二:通过web网页上传

我们启动ipfs节点以后,在浏览器中访问http://127.0.0.1:5001/webui,可以看到ipfs的web管理界面

image.png

选择Files->Add即可添加整个网站目录

  1. 查看网站

打开浏览器,输入http://127.0.0.1:8080/ipfs/QmSKK986gpytABxLD5kE8jUK9bPo4iU4A8WTz5VQpDqCmE即可看到上传的网站

上诉方式只是在我们本地启动了一个ipfs节点。所有文件存储在本地服务,一旦本地服务关了以后我们的网站就无法浏览了。
可以通过下面的方式,是我们的网站持久化托管到ipfs

选择托管服务

IPFSPin一些内容的节点将永远托管它(直到取消固定),比如Pinata之类的Pin服务,可将文件 Pin 在其IPFS节点上。这样,网站将始终可用

打开网站以后,有三种选择

image.png

我们选择上传目录,然后把我们的网站目录整个上传上去,上传完成以后会返回一个HASH,
我们复制这个HASH.在浏览器中打开https://ipfs.io/ipfs/{HASH}就可以看到我们上传上去的网站目录

例如: https://ipfs.io/ipfs/QmPM8dxkAuJtH42Ss2F8qeH4ZB8mPJyDY2M8SvZev7VNW2

绑定自定义域名

我们现在已经能够通过https://ipfs.io/ipfs/QmPM8dxkAuJtH42Ss2F8qeH4ZB8mPJyDY2M8SvZev7VNW2访问我们的网站了,但是有两个问题

  1. 这个网站很难被记住,不容易被查找
  2. 每次更新网站CID都会变,就需要访问新的链接才能被正确访问

可以通过以下两种方案解决

  1. 使用DNSLink

文档地址: https://docs.ipfs.io/guides/concepts/dnslink/

  1. 使用以太坊域名服务

ENS 是一个以太坊区块链上的命名服务,它使用智能合约购买域名并为其设置解析器记录。由于涉及以太坊,因此您需要使用 MetaMask 来使用它

类似的域名服务有很多,可以自行查阅

相关文章

  • 将Web服务部署到IPFS上

    将Web服务部署到IPFS上 注: 本文操作环境为ubuntu 18.04 安装ipfs 安装go语言环境 安装g...

  • 5、持续集成-jenkins

    一:通过jenkins调用shell脚本完成从Gitlab服务器获取代码、打包、部署到web服务器、将web服务器...

  • 浅谈Web服务器(一)

    Web 系统 只要涉及到web项目开发,必须将项目部署到服务器上运行。了解web服务器之前需要先了解一下web系统...

  • 怎样将本地web项目部署到腾讯云服务器上?

    怎样将本地web项目部署到腾讯云服务器上? 1.本地计算机的工作: (1).用eclipse新建一个web项目,然...

  • 网站服务架构

    服务器划分 对于访问量大的网站而言,将网站的各个部分拆分分别部署到不同服务器上是很有必要的。例如将图片和web站...

  • Flask Python Web部署

    概要:使用 Nginx + Gunicorn + Flask 将Web应用部署到服务器 最近我用flask把网站重...

  • 开发环境和生产环境下的前后端分离

    前后端分离不仅是开发过程的分离,而且也是部署上的分离。前端项目部署到web服务器,不能部署到应用服务器(tomca...

  • maven命令deploy使用

    deploy的用法:将maven的web项目部署到远程服务器。准备工作:1.远程服务器tomcattomcat需要...

  • Web服务器软件

    web服务器软件 静态项目和动态项目: 将Tomcat集成到Idea中,并且创建JavaEE项目,部署项目

  • 云服务器nginx配置

    1、单网站部署到云服务器上单网站部署到云服务器上,可以不依赖Nginx,直接将代码文件传到云服务器上,连接云服务器...

网友评论

      本文标题:将Web服务部署到IPFS上

      本文链接:https://www.haomeiwen.com/subject/vqpunhtx.html