IPFS相关在Ubuntu上使用反向代理和http basic auth保护IPFS节点
Posted IPFS原力区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IPFS相关在Ubuntu上使用反向代理和http basic auth保护IPFS节点相关的知识,希望对你有一定的参考价值。
本文由IPFS原力区收集译制,版权所属原作者
我需要设置一个IPFS节点,我想分享我如何保护它,因为我找不到一个很好的指南。
首先,使用以下说明设置和安装IPFS: https://docs.ipfs.io/introduction/install/
我为Ubuntu使用了预构建的二进制文件,并将其移至/usr/local/bin。移动它之后,运行以下命令:ipfs init — profile server
nginx的安装,然后安装Certbot使用说明这里为: https://certbot.eff.org/lets-encrypt/ubuntuxenial-nginx.html
我为ipfs创建了一个systemd init脚本,以确保它保持运行并在重启时启动,但这是可选的。如果您想要init脚本,请将下面的文本放入/lib/systemd/system/ipfs.service
[Unit]
说明= IPFS守护程序
[服务]
Type = simple
User = ubuntu
Environment = HOME = / home / ubuntu
Restart = always
ExecStart = / usr / local / bin / ipfs daemon
[Install]
WantedBy = multi-user.target
如果你想启动这项服务,你可以这样做,sudo systemctl start ipfs如果你想确保它在启动时自动运行,你应该运行sudo systemctl enable ipfs
接下来,你要成立nginx的反向代理。要做到这一点,我跑sudo certbot --nginx在提示时把我的域名。这设置我的nginx配置文件在文件/etc/nginx/sites-enabled/default的顶部已经有另一个服务器{}条目,所以我删除了它,只剩下certbot创建的那个。我还有certbot创建一个条目将http重定向到https。我添加了一个位置{}条目到传入的请求传递给API IPFS暴露在localhost:5001。
我还使用HTTP基本身份验证添加了身份验证,这可以通过以下说明来完成:https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-http-basic-authentication/但我使用/etc/nginx/.htpasswd作为我的.htpasswd路径,因为我的机器上不存在/ etc / apache2因为我只有nginx。
我也想只公开/api/v0/add端点,因为这就是我现在所需要的。因此,在nginx配置文件中,允许到该端点的流量,并拒绝所有其他流量。
最终结果是这个nginx配置文件在 /etc/nginx/sites-enabled/default
server {
server_name ipfs.deco.network; #由Certbot管理
location / api / v0 / add {
proxy_pass http:// localhost:5001 ;
proxy_set_header Host $ host;
proxy_cache_bypass $ http_upgrade;
允许全部;
}
location / {
proxy_pass http:// localhost:5001 ;
proxy_set_header Host $ host;
proxy_cache_bypass $ http_upgrade;
否认所有;
}
auth_basic“需要验证”;
auth_basic_user_file /etc/nginx/.htpasswd;
听443 ssl; #由Certbot
ssl_certificate /etc/letsencrypt/live/ipfs.deco.network/fullchain.pem 管理; #由Certbot管理
ssl_certificate_key /etc/letsencrypt/live/ipfs.deco.network/privkey.pem; #由Certbot管理
包括/etc/letsencrypt/options-ssl-nginx.conf; #由Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem 管理; #由Certbot管理
}
server {
if($ host = ipfs.deco.network){
return 301 https:// $ host $ request_uri ;
由Certbot管理
听80;
server_name ipfs.deco.network;
返回404; #由Certbot管理
}
祝好运!
【IPFS相关】由IPFS原力区译制整理,收集外网中各领域人士在使用或开发IPFS及其相关应用时所分享的文章内容。
IPFS原力区官网:http://ipfsforce.com
IPFSER社区: http://ipfser.org
微博:http://weibo.com/ipfsforce
以上是关于IPFS相关在Ubuntu上使用反向代理和http basic auth保护IPFS节点的主要内容,如果未能解决你的问题,请参考以下文章
Laravel - 所有路由上的 NGINX + Apache 反向代理 404
apache反向代理tomcat的两个代理模式及相关的会话保持配置示例