首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重写入口kubernetes上的路径

问重写入口kubernetes上的路径
EN

Stack Overflow用户
提问于 2021-08-25 02:33:12
回答 2查看 72关注 0票数 1

我让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

我的基本入口

代码语言:javascript
复制
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/

代码语言:javascript
复制
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错误

EN

回答 2

Stack Overflow用户

发布于 2021-08-25 05:36:02

尝尝这个

代码语言:javascript
复制
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(/|$)(.*)

例如,上面的入口定义将导致以下重写:

代码语言:javascript
复制
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/

票数 2
EN

Stack Overflow用户

发布于 2021-08-25 04:54:41

尝试添加如下注释: nginx.ingress.kubernetes.io/rewrite-target:"/$1“

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68916074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档