nginx 入口路由(默认后端 404)

nginx ingress routing (default backend 404)

我正在尝试为休息 api 服务编写入口,但我看到“默认后端 404”

我的休息服务url是这样的 https://myurl.com/restsvc/api/test/v1/app/hello?name=bob

下面是我的入口 yml:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: restservice-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
spec:
  tls:
    - hosts:
        - myurl.com
      secretName: secret
  rules:
    - host: myurl.com
      http:
        paths:
          - path: /restsvc/api/test/v1/app/(.*)
            pathType: Prefix
            backend:
              serviceName: restservice-svc
              servicePort: 8080

感谢任何帮助,谢谢

试试这个 -

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    kubernetes.io/ingress.class: nginx
  name: staging-ingress
spec:
  rules:
  - host: myurl.com
    http:
      paths:
      - path: /restsvc/api/test/v1/app/(.*)
        backend: 
          serviceName: restservice-svc
          servicePort: 8080
  tls:
    - hosts:
        - myurl.com
      secretName: secret

使用下面的重写目标解决了这个问题

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    kubernetes.io/ingress.class: nginx
  name: staging-ingress
spec:
  rules:
  - host: myurl.com
    http:
      paths:
      - path: /restsvc(/|$)(.*)
        backend: 
          serviceName: restservice-svc
          servicePort: 8080
  tls:
    - hosts:
        - myurl.com
      secretName: secret