有些时候我们跑一些 web 应用,想把他们放在公网上,但是又不能每个人都可以访问。如果这个程序不支持通过身份验证,那么之前的做法大概会前面套上一个 nginx 之类的反向代理,在反向代理中配置身份认证。
这样…… 也不是不行,但是配置 nginx 就让人感觉很繁琐!在有了 Cloudflare Zero Trust 之后,我们可以利用 Cloudflare 做到这种身份认证的事情。
我这刚好有一个 redis insight,接下来就可以说一下这个东西怎么跑
Redis Insight
Redis 官方出的一个用户管理 redis 的工具,可以增删改查啦什么的。跑起来很容易,用 docker 跑是这样的:才不用那个 electron 套壳呢
- docker run –d —restart=unless–stopped —name=redisinsight \
- –v redisinsight:/db -p 127.0.0.1:8001:8001 \
- -e RITRUSTEDORIGINS=https://redis.dmesg.app \
- redislabs/redisinsight
由于 Redis Insight 有 CORS 检查,因此这里要设置环境变量来控制,要记住不可以带 /
哦
然后把容器连接到网络,因为我的 redis 通过 docker-compose 跑了两个,因此要把容器和网络连接起来:
- docker network connect botsrunner_default redisinsight
- docker network connect yyetsbot_default redisinsight
创建 Argo tunnel,添加 Public Hostname
如下图所示。此时redis.dmesg.app
应该可以访问了
开启 access
Zero Trust – Access – Applications – Add Application – Self-hosted
选择对应的会话有效期,对应的子域名
下一页 configure rules 选择最简单的 email 方式即可
此时打开对应的网站,就会发现已经进入了验证页面
输入邮箱验证之后就可以正常访问了。
在 Redis Insight 中,添加连接的时候,用redis.yyetsbot_default
来表示yyetsbot_default
这个网络的redis
service。
常见问题
收不到验证码
别怕,可能是被拦截了,比如说 Gmail……
Redis Insight 页面无法显示
应该是 cache 的问题,开 development mode 暂时绕过,验证通过之后再关掉好了