Regex path matching for Ingress-Nginx

Viewed 912

I am working with ingress-nginx in kubernetes to set up a server. The issue is that the paths are not routing at all and I get a 404 error from the nginx server on any request I make. Below is my code for ingress:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-srv
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/use-regex: "true"
spec:
  # defaultBackend:
  #   service:
  #     name: auth-srv
  #     port:
  #       number: 3000
  rules:
    - host: app.dev
    - http:
        paths:
          - pathType: Prefix
            path: /api/auth/?(.*)
            backend:
              service:
                name: auth-srv
                port:
                  number: 3000
          - path: /api/coms/?(.*)
            pathType: Prefix
            backend:
              service:
                name: coms-srv
                port:
                  number: 3000

If I uncomment the default backend service I get a response but as soon as I remove it I get the 404 nginx error. So I know its connecting to the services I set.

I don't know where I'm going wrong how to go about fixing this as I'm copying straight from the docs. Any help or insight would be great. Thank you in advance!

Edit 1: I removed the regex from the path and commented out the /api/auth path so no requests should be going to the auth-srv. For some reason, all requests route to the auth-srv even though there is no mapping to it. NOTE: Both the auth and coms pods/services are running in the background, just ingress-nginx still isn't routing properly.

1 Answers

So the reason why this wasn't routing properly was because of the:

    - host: app.dev
    - http:

The "-" in front of the "http" made the controller think it was its own ruleset so the following routes had a host of "*". After I Removed the "-" in front of the "http", the rules were set to the proper host of app.dev and it started routing accordingly.

Thank you for your help everyone! What a long day it has been :')

Related