项目主页: https://vanblog.mereith.com
开源地址: https://github.com/mereithhh/van-blog
Demo 站: https://blog-demo.mereith.com
喜欢的话可以给个 star 哦 🙏
我自己家的用了 nginx proxy manager
作为提供服务的统一出口,因为没办法用 443
端口,所以用的 8443
,也没改 nginx proxy manager
的默认端口,直接路由器端口转发到了 8443
上,这时候其实 Host
的请求头是错误的。
具体而言会导致我用最新版本的 code-server
的 origin
校验失败,报错 1006
,因为 host
端口号不对。
平时有时候会突然想写一个小网页,或者部署一个服务到集群里,但添加解析让我很苦恼。我需要手动去 Dnspod 扫码登录,然后点击我的域名,然后点添加,一套下来很繁琐。
能不能让 k8s 的 ingress 有变化的时候,自己添加域名解析啊?这样配合 Traefik Ingress 来自动签发证书,我就能解放很大一部分的双手了。
(实际上我现在使用 Rancher 来管理我的几个集群,如果上面的能实现,那我完全可以图形化的页面里点点点,一套服务就创建好了,想想就很好)
我没找到现成的工具,那就自己写一个吧,大概的需求和思路是这样的:
我自己的集群一直都用的 traefik ingress controller
,感觉挺好用的, 还能自动签发管理 https 证书
。
然后我一般都用 rancher
图形化的管理我的服务,很少手动去写 yaml
了,所以 ingress
我也是直接图形化创建的,这时候想用中间件,就需要用 ingress 注解
的方式了。
比如我有一条 ip-whitelist
的中间件,在 default
命名空间,那就这么写 ingress
注解:
traefik.ingress.kubernetes.io/router.middlewares: "default-ip-whitelist@kubernetescrd"
没错,就是 <命名空间>-<中间件名字>@kubernetescrd
流水线功能
自从 VanBlog v0.49.0 后,增加了流水线功能。
流水线功能允许用户在自定义的事件发生后执行任意的自定义 js 代码,甚至改写事件的结果。
我们可以利用这个功能,在每次文章发布前,自动追加一些自我介绍信息,或者是推荐文章。在这个例子中,我们使用流水线功能,在文章末尾自动追加下面的内容:
Powered By VanBlog