如何在没有通配符的情况下为GCE Ingress提供正确的路径?

时间:2019-07-03 08:49:39

标签: google-kubernetes-engine kubernetes-ingress nginx-ingress

我已经使用wordpress进行了部署,我想在https:/// blog上提供此部署。

rules:
  - host: <domain>
    http:
      paths:
      - backend:
          serviceName: backend
          servicePort: 80
        path: /*
      - backend:
          serviceName: wordpress
          servicePort: 80
        path: /blog/*

但是gce ingress不允许没有通配符的代理流量。我的博客可在/ blog /上找到,但不能在/ blog上找到。

我可以以某种方式解决该问题吗?谢谢。

1 个答案:

答案 0 :(得分:0)

根据文档:

  

从0.22.0版开始,使用注释nginx.ingress.kubernetes.io/rewrite-target的入口定义与以前的版本不向后兼容。在0.22.0及更高版本中,必须在捕获组中显式定义请求URI中需要传递到重写路径的所有子字符串。

以重写目标为例:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$2
  name: rewrite
  namespace: default
spec:
  rules:
  - host: rewrite.bar.com
    http:
      paths:
      - backend:
          serviceName: http-svc
          servicePort: 80
        path: /something(/|$)(.*) 

资源:

希望获得帮助。