【问题标题】:Kubernetes nginx-Ingress reverse proxy some pathsKubernetes nginx-Ingress 反向代理一些路径
【发布时间】:2020-01-30 10:15:46
【问题描述】:

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

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

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

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

也许对k8s来说,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

如何设置规则和注释?

【问题讨论】:

    标签: kubernetes kubernetes-ingress nginx-ingress


    【解决方案1】:

    您可以使用externalName 类型创建一个指向您的外部服务(CDN)的服务,这在blog post 中有很好的解释,例如:

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

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

    【讨论】:

    • 如果使用 istio-ingressgateway(不使用 nginx-ingress),是否有另一种方式应用反向代理,如上例? (像 nginx 的 proxy_pass)
    猜你喜欢
    • 2019-07-02
    • 2021-05-15
    • 2018-03-12
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    相关资源
    最近更新 更多