简体   繁体   English

后端路由与 Ingress/Ngnix 路由冲突

[英]Backend Route conflicts with Ingress/Ngnix routes

In my application I am using ingress/nginix its conflicts my backend API route.在我的应用程序中,我正在使用 ingress/nginix,它与我的后端 API 路由冲突。

ingress file contains default UI route using regex入口文件包含使用正则表达式的默认 UI 路由

/()(.*) /()(.*)

Above is default route and based on it it loads default page of UI UI route - /management以上是默认路由,并基于它加载 UI UI 路由的默认页面 - /management

At backend.Net controller level I have route prefix like in b /api/management在 backend.Net controller 级别我有像 b /api/management 这样的路由前缀

For backend API, In ingress I have defined route like /api/management()(.*)对于后端 API,在入口中我定义了类似 /api/management()(.*) 的路由

UI is rendered from /management route from management-ui-service While calling backend API from UI we are calling backend api endpoints with http://domain/api/management/XXXX UI 是从 management-ui-service 的 /management 路由呈现的 从 UI 调用后端 API 时,我们调用后端 api 端点 http://domain/api/management/XXXX

It returns 404 with above API path,but while we call API with http://domain/api/management/api/management/XXXX (need to pass multiple time end point - /api/management) it works它返回 404 以上 API 路径,但是当我们调用 API 和 http://domain/api/management/api/management/XXXX(需要通过多个时间终点 - /api/management)它工作

How we can call it with single endpoint like http://domain/api/management/XXXX我们如何使用单个端点调用它,例如 http://domain/api/management/XXXX

在此处输入图像描述

This may be well related to regex in path put there for no good reason.这可能与没有充分理由放在那里的路径中的正则表达式密切相关。
I use ingress this way and so far it works exactly as I expect it:我以这种方式使用入口,到目前为止它完全按照我的预期工作:

- backend:
    service:
      name: app-api
      port:
        number: 80
  path: /api-manage/
  pathType: Prefix

- backend:
    service:
      name: app-ui
      port:
        number: 80
  path: /manage/
  pathType: Prefix

This way I can refer to https://api.mysite.io/manage or https://api.mysite.io/api-manage/ and land exactly where I'm supposed to.这样我就可以参考https://api.mysite.io/managehttps://api.mysite.io/api-manage/并准确地到达我应该去的地方。
Yes, it is formatted different than your example, but you should be able to adapt it to your configuration.是的,它的格式与您的示例不同,但您应该能够根据您的配置进行调整。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Ngnix 不匹配位置地址 - Ngnix not matching location adress 与主路由和过滤器匹配但与子路由不匹配的正则表达式 - Regex that matches with main route and filters but not matches with sub-routes Url.Action无法与使用路由注释的控制器中指定的路由一起使用 - Url.Action is not working with routes specified in controller using route annotation 当路由指定 / 时,Servicestack 路由仅在主机名之后使用 / 解析 - Servicestack routes only resolving with // after hostname when route specifies / 通过 httpVerb 属性和“Route”属性进行路由会导致不同的路由吗? - Will routing via via httpVerb attribute and "Route" attribute result in different routes? 在确保 api 使用和不使用 api 版本时如何消除路由名称冲突? - How to get rid of route-name conflicts when ensuring api works both with and without the api-version? 如何配置ASP.NET Core多微服务应用程序和Azure AKS入口路由,以使其不会破坏wwwroot文件夹中的资源 - How to configure an ASP.NET Core multi microservice application and Azure AKS ingress routes so that it doesn't break resources in the wwwroot folder 如何在 startup.cs 中添加 /.well-known/openid-configuration 路由以及 controller 路由和 angular 路由? - How to add /.well-known/openid-configuration route in startup.cs along with controller routes and angular routes? 带有 Angular 模板的 ASP.NET Core - httpget 路由被 Angular 捕获 - 无法匹配任何路由 - ASP.NET Core w/Angular Template - httpget Route is being caught by Angular - cannot match any routes 如何构造自定义WebApi路由,例如“ package / {packageName} / {controller}”,以路由到单独程序集中的Application Parts? - How can I construct custom WebApi routes like “package/{packageName}/{controller}” to route to Application Parts in a separate assembly?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM