Kubernetes Nginx-Ingress反向代理一些路径

时间:2020-01-30 10:15:46

标签: kubernetes kubernetes-ingress nginx-ingress

我正在尝试使用nginx-ingress反向代理。

但是我找不到仅在某些路径中应用反向代理的方法

例如,我要从CDN静态资源中应用反向代理http://myservice.com/about/ *

和其他路径为我提供服务(例如,它表示“ my-service-web”服务)

也许就k8而言,CDN表示“公共外部服务”

结果

这是我的ingress.yaml文件

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-service-web
  namespace: my-service
  annotations:
    kubernetes.io/ingress.class: nginx-ingress
    nginx.ingress.kubernetes.io/server-snippet: |
      location ~ /about/(.*) {

        proxy_pass  https://CDN_URL/$1${is_args}${args};

        ......and other proxy settings
      }

spec:  
  rules:
    - host: myservice.com
      http:
        paths:
          - path: /about
            ........how do i configuration this?
          - path: /*
            backend:
              serviceName: my-service-web
              servicePort: 80

我如何设置规则和注释?

1 个答案:

答案 0 :(得分:1)

您可以创建类型为externalName的服务,该服务将指向您的外部服务(CDN),对此blog post进行了很好的说明,例如:

apiVersion: v1
kind: Service
metadata:
  name: my-service
  namespace: my-service
spec:
 type: ExternalName
 externalName: FQDN

,然后通过引用服务名称在您的入口规则中使用它。