将通配符域路由到 nginx ingress 中的不同路径

routing wildcard domain to different paths in nginx ingress

我如何实现与此类似的东西。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
    ingress.kubernetes.io/rewrite-target: /c/{word-maching-wildcard}

  name: some-route
  namespace: prod
spec:
  rules:
     - host: "*.example.com" # {hello}.example.com -> hello.example.com/hello
       http:
        paths:
         - backend:
            serviceName: svc
            servicePort: 8080
           path: /

有什么方法可以捕获子域中的匹配词并在路由到上游服务之前将其附加到路径中。

来自官方文档:

Regular expressions and wild cards are not supported in the spec.rules.host field. Full hostnames must be used.

参见:nginx-ingress-matching

但是我发现了类似的问题,建议编写自己的控制器,写出在适当的 proxy_pass 或重定向行中使用 $http_host 的 nginx 配置。

阅读更多:.