2.6.x 版本 k8s/k3s 环境部署
entrypoint 启用 tls 提供 https 服务,在该 entrypoint 端口收到 http 请求时,本来预计应该得到一个类似 nginx 的 http code = 497 的错误,结果实测结果是 404 ,尝试加 middleware 正则匹配修改 /重定向均无效,原因似乎是在匹配 router 的时候这个 entrypoint 下匹配 schema 永远都是 http!=https 所以请求无法命中任何一条 router 配置,更后面的中间件也就自然无效了,直接在 traefik 启动 cli 里给 entrypoint 加默认中间件同样未执行
这就有点坑爹了,在 IngressRoute 里试了好几种 match 规则也不能匹配到这种乱入 https 端口的 http 流量
说实话就算 497 不是 RFC 定义,那我已经配置了符合 HOST 条件的 router ,讲道理也应该是被 router 命中后返回 400 吧,现在没有 router 能命中永远返回个 404 ,也没法配置处理这个异常也太难顶了 nginx 里一句 error_page 497 https://$host:$server_port$uri$is_args$args;
能搞定的事情,琢磨了半天也不知道在 traefik 上咋整,向各位 dalao 求教,这问题除了在 traefik 前面加一层 nginx 帮它把这个活儿干了之外有没有什么能直接通过 traefik 解决的方式?
1
aragakiyuii 2022-03-31 22:02:43 +08:00
再配一个 80 端口的 entryPoints 应该可以把
|
2
RRyo OP @aragakiyuii 开个 80 的其实是利用自动给 http+80 https+443 把这部分分离了,但非标准端口就没法解决(比如 8443 )
实际遇到的问题是家里一套环境通过 traefik 统一管理对外暴露+SSL 变 https ,(集群)内部走 http ,有部分应用在重定向跳转的时候没有读取客户端到 traefik 这一段走的 https ,返回的仍然是 http 的跳转 /文件 url ,这样就有 http 请求被发送到 https 的 entrypoints 上了,在很久以前用 nginx 做网关的时候遇到这个问题就是用 error_page 497 直接把请求改跳到对应的 https 上,现在用 traefik 因为 router 的匹配机制现在就尬住了 |
3
1298345095 78 天前
traetik v3 还是这套配置吗?
|
4
1298345095 78 天前
光用 traefik ,不用 k8s 咋搞。。试遍网上的了
|