Cha*_*lie 3 nginx node.js kubernetes kubernetes-ingress nginx-ingress
我有一项服务和一个带有 kubenetes nginx 入口控制器的入口资源。我希望/student
我的 url 路径转到应用程序的根目录,并匹配student
.
例如: http: //example.com/student/ver应该与/ver
我的应用程序的路由匹配。
/student
然而,我的入口总是使用url 路径作为其他 url 段的前缀来访问应用程序。如果我调用http://example.com/student/ver,我的应用程序将使用相同的 url ( student/ver
)。
我的入口:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
ingress.kubernetes.io/rewrite-target: /
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "false"
name: ingress-resource
spec:
rules:
- host: example.com
http:
paths:
- backend:
serviceName: lesson-streaming
servicePort: 80
path: /student
Run Code Online (Sandbox Code Playgroud)
我花了好几天的时间来解决这个问题,但一次都没有成功。
编辑:
入口更改为以下内容 - 不是我的要求说的http 404
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
ingress.kubernetes.io/rewrite-target: /$2
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "false"
name: ingress-resource
namespace: default
spec:
rules:
- host: example.com
http:
paths:
- backend:
serviceName: lesson-streaming
servicePort: 80
path: /student(/|$)(.*)
Run Code Online (Sandbox Code Playgroud)
您可以按照链接正确使用rewrite-target
注释并保留正确的密钥nginx.ingress.kubernetes.io/rewrite-target
。
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
name: rewrite
namespace: default
spec:
rules:
- host: rewrite.bar.com
http:
paths:
- backend:
serviceName: http-svc
servicePort: 80
path: /something(/|$)(.*)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10862 次 |
最近记录: |