Broadchain

Filecoin存储提供者工具:使用nginx保护booster-http

大有IPFS研究院 2023-05-29 14:31 755

关于如何使用nginx工具保护booster-http的示例。

图片

作为存储提供者,通过http安全提供Filecoin检索。下文是关于如何使用nginx工具保护booster-http的示例。

 

通过HTTP提供文件服务让存储提供者可以使用与HTTP服务器交互的工具生态系统。例如,通过nginx,存储提供者(SP)可以限制某用户下载文件、每秒请求数量以及每个用户端每秒可以使用的下载带宽。

 

默认情况下,nginx将配置文件放入/ETC/nginx中

 

默认配置文件是/etc/nginx/sites-available/default

 

IPFS网关提供来自/ipfs/的文件,因此为/ipfs/的位置添加一个服务器区块。nginx服务器将听取7575端口,并将请求转发至7777端口的booster-http:

 

图片

 

访问限制

 

使用标准的.htaccess文件限制对IPFS网关的访问,我们需要设置一个带有用户名和密码的.htaccess文件,创建一个名为alice的用户:

 

图片

 

包含`/etc/nginx/sites-available/default中的.htaccess文件:

 

图片

 

现在,当我们打开路径/ipfs路径下的任何URL时,我们将看到一个登录对话框:

 

图片

 

速率限制

 

为了防止用户每秒发出过多请求,需要添加速率限制。

 

首先在/etc/nginx/ipfs-gateway.conf.d/ipfs-gateway.conf中创建一个限速配置文件。在文件中添加一个请求区限制,即每个用户IP每秒1个请求:

 

limit_req_zone $binary_remote_addr zone=client_ip_10rs:1m rate=1r/s;

 

包含/etc/nginx/sites-available/default`中的`ipfs-gateway.conf,并将过多请求的响应设置为HTTP response code 429:

 

图片

 

现在,如果您在浏览器中对/ipfs下任意路径点击刷新按钮超过一次,将会看到一个429错误页面:

 

图片

 

带宽限制

 

我们可能会想限制用户从booster-http下载数据时占用的带宽。请学习如何设置带宽限制,为每个用户端设置不同的速率。

 

创建一个名为bob的新`.htaccess`用户:

 

图片

 

在/etc/nginx/ipfs-gateway.conf.d/ipfs-gateway.conf`中添加从.htaccess用户名到带宽限制的映射:

 

图片

 

在/etc/nginx/sites-available/default添加带宽限制:

 

图片

 

展示带宽限制最简单的方法是通过CURL先用用户alice下载文件,再用用户bob下载文件:

 

图片

 

注意平均Dload列(平均下载速度)的差异。

 

在本文中,我们仅对nginx设置访问限制、速率限制和带宽限制的方法进行了简单介绍,特别是可以通过请求令牌或使用JWT令牌来添加限制。本文示例改编自Deploying NGINX as an API Gateway(http://nginx.com/blog/deploying-nginx-plus-as-an-api-gateway-part-1),点击链接会有更详细的内容。

 

开始之前,请确保更新至Boost最新版本v1.7.2(https://github.com/filecoin-project/boost/releases/tag/v1.7.2)并尝试新booster-http功能。您可以参考这篇博文中的示例,或者Boost文档中的http检索(https://boost.filecoin.io/http-retrieval)。

声明:BroadChain Finance网站和App所发布的内容,均不构成任何投资建议。

大有IPFS研究院

专注IPFS分布式存储,最前沿的Web3.0追逐者,深度研究并解读IPFS生态信息,为广大IPFS爱好者提供最有价值的研究结果和行业资讯

10 篇 作品
9223 总阅读量