首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为带有入口的服务指定前缀

如何为带有入口的服务指定前缀
EN

Stack Overflow用户
提问于 2018-10-01 00:51:11
回答 2查看 8.8K关注 0票数 8

我想用一个入口暴露各种服务。

代码语言:javascript
复制
rules:
  - http:
      paths:
      # The path is the URL prefix for the service, e.g. /api/* or just /*
      # Note that the service will receive the entire URL with the prefix
      - path: /service1/*
        backend:
          serviceName: service1
          servicePort: 5000
      - path: /service2/*
        backend:
          serviceName: service2
          servicePort: 5000

问题是整个URL (包括前缀)被传递给底层服务,所以所有请求都返回404错误:service1和api不会在/service1/some/path上响应,而是直接在/some/path上响应。

如何为底层服务指定前缀?

更新

我试着使用以下重写目标。请求被发送到rasa-nlu服务,但是它们都触发了404,因为rasa-nlu仍然获得/nlu

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress
  annotations:
    ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
      - path: /nlu
        backend:
          serviceName: rasa-nlu
          servicePort: 5000
EN

回答 2

Stack Overflow用户

发布于 2018-10-01 01:03:09

这可能就是你要找的东西;

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    ingress.kubernetes.io/rewrite-target: /
  name: rewrite
  namespace: default
spec:
  rules:
  - host: rewrite.bar.com
    http:
      paths:
      - backend:
          serviceName: echoheaders
          servicePort: 80
        path: /something

注意要重写目标的注释

找到这个这里

票数 5
EN

Stack Overflow用户

发布于 2019-03-18 05:51:30

这条线可能到现在才能解决,但只是为了解决问题。下面将解决这个问题,默认路径是/nlu,当它被添加到重写注释中时。它来自nginx重写规则,该规则适用于位置指令的定义。

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress
  annotations:
    ingress.kubernetes.io/rewrite-target: /nlu
spec:
  rules:
  - http:
      paths:
      - path: /nlu
        backend:
          serviceName: rasa-nlu
          servicePort: 5000
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52583371

复制
相关文章

相似问题

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