我们在GKE Kubernetes集群上使用Traefik 1.7作为Ingress控制器。每个应用程序都有一个Ingress,它将传入的HTTP请求路由到Varnish服务,该服务可以处理来自缓存的响应,也可以将请求路由到某些nginx / PHP后端应用程序。
Varnish容器包含一个Varnish容器,该容器在端口80上侦听传入的请求,并在端口6083上使用一个应用程序,该应用程序负责将BAN请求镜像到所有Varnish副本,以便从所有Varnish副本中清除缓存对象。大多数BAN请求将来自内部PHP应用程序,但我们的BAN请求也来自在该群集外部运行的GitLab CI任务。
我们希望将具有BAN动词(而不是GET,POST等)的传入HTTP请求路由到Varnish服务上的端口6083,同时让GET,HEAD,POST流量像正常一样到达端口80。 / p>
我不知道有一种方法可以使Traefik路由到基于HTTP Verb的其他服务或端口。有什么想法吗?
答案 0 :(得分:1)
您可以在路由表达式中使用Method()
规则。有关更多详细信息,请参见https://docs.traefik.io/routing/routers/#rule,但是通过快速检查Traefik和Mux中的代码,我没有理由Method(\"BAN\")
不起作用。