我让tomcat后端服务在kubernetes集群上运行,尝试使用带有路径/blob/api/v1/test-backend > /api/v1/test-backend的入口重写,因此配置现在正在运行,因此可以访问xx.somedomain.com/blob/api/v1/test-backend,我希望通过重写更改到xx.somedomain.com/api/v1/test-backend
我的基本入口
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress-blob
namespace: blob-test
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/proxy-body-size: 50m
spec:
tls:
- hosts:
- xx.somedomain.com
secretName: cert-key
rules:
- host: xx.somedomain.com
http:
paths:
- path: /blob/
backend:
serviceName: blob-service
servicePort: 8080
- path: /
backend:
serviceName: web-service
servicePort: 80这是yaml重写/blob/
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress-blob
namespace: blob-test
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/proxy-body-size: 50m
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
tls:
- hosts:
- xx.somedomain.com
secretName: cert-key
rules:
- host: xx.somedomain.com
http:
paths:
- path: /blob/api/v1/some-backend
backend:
serviceName: blob-service
servicePort: 8080当我使用像talend这样的api测试器进行测试时,得到405错误
发布于 2021-08-25 05:36:02
尝尝这个
apiVersion: networking.k8s.io/v1
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(/|$)(.*)例如,上面的入口定义将导致以下重写:
rewrite.bar.com/something rewrites to rewrite.bar.com/
rewrite.bar.com/something/ rewrites to rewrite.bar.com/
rewrite.bar.com/something/new rewrites to rewrite.bar.com/new参考:https://kubernetes.github.io/ingress-nginx/examples/rewrite/
发布于 2021-08-25 04:54:41
尝试添加如下注释: nginx.ingress.kubernetes.io/rewrite-target:"/$1“
https://stackoverflow.com/questions/68916074
复制相似问题