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
我正在尝试为休息 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