首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nginx-ingress重写目标到/api不工作

nginx-ingress重写目标到/api不工作
EN

Stack Overflow用户
提问于 2021-12-01 14:26:44
回答 1查看 855关注 0票数 0

我正在尝试让api as location (/api)处理凹槽设置。

这是我的入口:

代码语言:javascript
复制
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-dev
  annotations:
    # use the shared ingress-nginx
    kubernetes.io/ingress.class: "nginx"
    #nginx.ingress.kubernetes.io/rewrite-target: /
    #nginx.ingress.kubernetes.io/app-root: /
    
spec:
  rules:
  - host: 'dev.example.com'
    http:
      paths:
      - path: /api
        pathType: Prefix
        backend:
          service:
            name: my-ruby
            port: 3000

当我使用curldev.example.com/api/check_version时,就会出现错误。

代码语言:javascript
复制
I, [2021-12-01T16:43:35.776502 #13]  INFO -- : [7253cca0b88503d625af527db32eb92e] Started GET "/api/check_serverr" for 10.42.1.228 at 2021-12-01 16:43:35 +0300
F, [2021-12-01T16:43:35.779603 #13] FATAL -- : [7253cca0b88503d625af527db32eb92e]
[7253cca0b88503d625af527db32eb92e] ActionController::RoutingError (No route matches [GET] "/api/check_version"):

如果我添加注释nginx.ingress.kubernetes.io/re写-target:/

获得误差

代码语言:javascript
复制
I, [2021-12-01T16:49:11.153280 #13]  INFO -- : [7832de5c07e3a173ddc86ebab5735cec] Started GET "/" for 10.42.1.228 at 2021-12-01 16:49:11 +0300
F, [2021-12-01T16:49:11.154435 #13] FATAL -- : [7832de5c07e3a173ddc86ebab5735cec]
[7832de5c07e3a173ddc86ebab5735cec] ActionController::RoutingError (No route matches [GET] "/"):

在这种情况下,如何正确地重写?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-01 14:53:17

根据这些评论,以下几点似乎解决了这个问题。

在将请求发送到后端之前,您希望删除/api部件,因此请求/api/check_version在到达后端之前将成为/check_version

代码语言:javascript
复制
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$2

...<omitted>...

      - path: /api(/|$)(.*)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70185978

复制
相关文章

相似问题

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