比如访问: http://example.com/abAB 返回是固定的一行文本字符串 (这个文本是微信给的,path 也是固定的,其实是用来验证域名所有者的)
现在 example.com 域名是定位到 k8s 里的 kong
kong 和应用服务都是部署在 k8s 里的。 域名也是 DNS 解析到 kong 的 LB 上的,
再在 k8s 里部署个 nginx (唯一作用就是这一个 path ), 然后用 kong 设置 route 绑定到这个 nginx 服务。但感觉有点复杂。
不想在 k8s 的外面部署 nginx,即域名不能改 DNS 解析。
1
chazyu1996 2020-11-27 18:39:30 +08:00
ingress
|
2
zzzmj 2020-11-27 19:46:06 +08:00
可以使用 kong 的 pre-function 插件 给 kong 注册一个 KongPlugin plugin 选择 pre-function,然后编写一个 lua 脚本即可
|
3
zzzmj 2020-11-27 19:48:47 +08:00
k8s yaml 如下,在 ingress 层加 annotation 即可
--- apiVersion: configuration.konghq.com/v1 kind: KongPlugin metadata: name: plugin name plugin: pre-function config: functions: - | local path = kong.request.get_path() if string.sub(path, -14) == "文件名.txt" then return kong.response.exit(200, "微信要求返回的内容") end |
4
zealinux OP @zzzmj 感谢,
我执行时报错了,不知道哪里错了。 kubectl create -f wechat-verify-domain.yaml The KongPlugin "wechat-verify-domain" is invalid: plugin: Required value |
5
zzzmj 2020-11-30 17:26:46 +08:00
|
6
zzzmj 2020-11-30 17:28:53 +08:00
看看第二个 tab Kubernetes 里怎么写的 yaml,照着写一个试试
|