highalps
highalps

Reputation: 141

Kubernetes nginx-Ingress reverse proxy some paths

i'm trying to reverse proxy using nginx-ingress.

but i cannot find a way to apply reverse proxy in only certain paths

for example, i want apply reverse proxy http://myservice.com/about/* from CDN static resources

and other paths serve my service (in example, it means 'my-service-web' service)

maybe in terms of k8s, CDN means "public external service"

in result,

here is my ingress.yaml file

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

how do i set rules and annotations?

Upvotes: 0

Views: 1655

Answers (1)

kool
kool

Reputation: 3613

You can create a service with externalName type that will point to your external service (CDN) and it's well explained in this blog post, for example:

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

and then use it in your ingress rules by referring to the service name.

Upvotes: 1

Related Questions