运行 支持 HTTPS 的本地开发 IPFS 网关
Running a local dev IPFS gateway that supports HTTPS
我正在构建一个旨在托管在 IPFS 上的分布式 Web 应用程序。我想在 Web 浏览器中进行开发,使用我的本地网关来提供我的文件,但我使用 Javascript 未经 HTTPS 服务而不允许的 API。
我尝试使用指向本地 IPFS http 网关的自签名 ssl 启动反向代理,但是当我使用反向代理访问链接时,比如 https://___hashhere___.ipfs.localhost:8081/
,我被重定向到 http://___hashhere___.ipfs.localhost:8080/
:
GATEWAY_PORT=$(ipfs config Addresses.Gateway | cut -d'/' -f 5)
HTTPS_PORT=$((GATEWAY_PORT+1))
echo "https proxy to your ipfs gateway now at: https://localhost:$HTTPS_PORT"
exec npx local-ssl-proxy --source $HTTPS_PORT --target $GATEWAY_PORT
如何在一两个命令中 运行 本地 https+ipfs 网关?我想我需要一个反向代理来重写响应中的 URL?
如果您使用 Chromium-based 浏览器,则 http://___hashhere___.ipfs.localhost:8080/
会将 window.isSecureContext
设置为 true
,您将可以访问所有 Web API。无需使用 Chromium 在本地主机上为开发人员设置 TLS(Firefox 有 bug)。
如果您是 运行 IPFS Companion,您可能希望在开发应用程序时禁用它,以确保对 IPFS 资源的请求不会重定向到在浏览器扩展的首选项中设置的网关.
在生产中,您将 go-ipfs 部署在反向代理之后,该代理终止 TLS。您可以通过 X-Forwarded-Proto
和 X-Forwarded-Host
headers 控制某些重定向中使用的协议方案和主机,如 go-ipfs/docs/config.md
中所述
我正在构建一个旨在托管在 IPFS 上的分布式 Web 应用程序。我想在 Web 浏览器中进行开发,使用我的本地网关来提供我的文件,但我使用 Javascript 未经 HTTPS 服务而不允许的 API。
我尝试使用指向本地 IPFS http 网关的自签名 ssl 启动反向代理,但是当我使用反向代理访问链接时,比如 https://___hashhere___.ipfs.localhost:8081/
,我被重定向到 http://___hashhere___.ipfs.localhost:8080/
:
GATEWAY_PORT=$(ipfs config Addresses.Gateway | cut -d'/' -f 5)
HTTPS_PORT=$((GATEWAY_PORT+1))
echo "https proxy to your ipfs gateway now at: https://localhost:$HTTPS_PORT"
exec npx local-ssl-proxy --source $HTTPS_PORT --target $GATEWAY_PORT
如何在一两个命令中 运行 本地 https+ipfs 网关?我想我需要一个反向代理来重写响应中的 URL?
如果您使用 Chromium-based 浏览器,则
http://___hashhere___.ipfs.localhost:8080/
会将window.isSecureContext
设置为true
,您将可以访问所有 Web API。无需使用 Chromium 在本地主机上为开发人员设置 TLS(Firefox 有 bug)。如果您是 运行 IPFS Companion,您可能希望在开发应用程序时禁用它,以确保对 IPFS 资源的请求不会重定向到在浏览器扩展的首选项中设置的网关.
在生产中,您将 go-ipfs 部署在反向代理之后,该代理终止 TLS。您可以通过
中所述X-Forwarded-Proto
和X-Forwarded-Host
headers 控制某些重定向中使用的协议方案和主机,如 go-ipfs/docs/config.md