问题标签 [ocelot]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3681 浏览

asp.net - Ocelot 文档 - 身份验证

我正在尝试学习并考虑将我当前的 asp.net api 拆分为一堆较小的 api,以尝试制作微服务应用程序(主要用于学习目的)。我使用 Ocelot 作为网关,我发现 Ocelot 很不错且易于设置。但是,我发现很难找到合适的文档,例如如何添加身份验证,因为 ocelot.readthedocs.io 在这方面感觉很糟糕。我很难确定是否应该在网关 api 中创建注册和登录方法,还是仍然将其单独保存在保存用户数据库的微服务中?也许我应该将网关 api 连接到用户数据库以进行直接交互?(感觉它违背了微服务的目的)。

对我来说,与在单体应用程序中对 http 方法进行身份验证相比,仅对重新路由进行身份验证听起来有点不安全。但我可能只是错过了重点。否则,如果你们知道任何重要的信息来源,那就太好了,因为我很难找到有关 ocelot 和 asp.net 微服务的文章、教程、课程或任何类似性质的东西。

0 投票
1 回答
928 浏览

docker - Ocelot 找不到重新路由文件

我正在尝试构建自己的微服务架构,但被困在 API.Gateway 部分。我试图让Ocelot V14.sln文件中找到所有配置ocelot.json 或 configuration.json文件。

解决方案文件设置

Program.cs文件中,我试图将配置文件与此链接中的以下代码合并https://ocelot.readthedocs.io/en/latest/features/configuration.html#react-to-configuration-changes

当我运行它时,应用程序会在我的OcelotApiGw 项目中创建以下ocelot.json文件

问题是它是空的,并且重新路由不起作用。当我将所需的重新路由粘贴到此ocelot.json文件中时,重新路由会起作用,这不是我想要的功能。

我想要的是从不同的.json文件中自动合并配置文件。

任何帮助将不胜感激。

eShopOnContainers 如何使用 Ocelot V12 以这种方式实现它

如果您需要更多代码、文件结构或其他任何内容,请发表评论并询问。

0 投票
2 回答
789 浏览

authentication - 如何将多个身份验证模式合并为一个(自定义身份验证)

我在我的 .NET Core API 中使用添加多个 Jwt 承载进行了多重身份验证,假设我有Schema1Schema2并且Schema3.

我也在使用Ocelot来管理请求。在每个路由的 Ocelot 配置中,我可以声明一个且只有一个身份验证类型(模式名称)。但是在某些情况下,我需要为每个路由提供多个身份验证支持。(我需要使用 或 中的任何一个来验证请求Schema1)。Schema2Schema3

但是由于 Ocelot 只是让我添加一个模式名称,因此我必须将这 3 个模式合并为 1 个模式。

所以基本问题是:我如何定义一个身份验证模式(SchemaX),它通过Schema1orSchema2或 or进行身份验证Schema3?任何想法?

0 投票
0 回答
1348 浏览

asp.net-core - Ocelot ApiGateway 无法访问 Kubernetes 上的其他服务

我正在做一个简单的项目来了解更多关于微服务的信息。

我有一个非常简单的 .net 核心网络,只有一个 GET 端点。我添加了一个带有 Ocelot 的 ApiGateway Web 应用程序,除了部署到本地 Kubernetes 集群外,一切似乎都运行良好。

这些是我用于部署的 yaml 文件:

ApiGateway.yaml

测试服务.yaml

豹猫.json

如果我尝试使用 cUrl 直接从 ApiGateway pod 向 TestService 服务发出请求,则它可以正常工作。但是当我尝试从 Ocelot 请求它时,它返回一个 500 错误,说:

另外,我尝试使用此https://ocelot.readthedocs.io/en/latest/features/kubernetes.html但老实说,该文档并不是很清楚,到目前为止我还没有取得任何成功。

知道问题可能是什么吗?

(我也在使用 Ingress 资源来公开服务,但这没有问题,所以我暂时将其排除在此线程之外)

0 投票
2 回答
3181 浏览

c# - Ocelot - 下游-上游中不同的占位符

我有一个 API 网关(C#,net.Core 3.1,Ocelot),一切正常,但现在我正在尝试为上游和下游配置不同的路由,因为我的网关在此过程中检索信息并将此信息发送到最终API。

在上游我没有占位符 {userid},但我想在下游有它。

这是我的 ocelot.json:

还有我如何在中间件中添加占位符值:

所以,为了更清楚,这里有一个例子:

我在http://localhost:44358/api/User/ (mygateway Upstream) 被调用,从某些逻辑中我得到了进行此调用的用户 ID,例如 Andrew,我想将请求重定向到我的 API http:/ /localhost:44301/api/User/Andrew(mygateway 下游)。

一切都很好,除了在我的 API 中,用户 ID 以 {userid} 的形式出现并且没有用户 ID 值(安德鲁)。

0 投票
1 回答
525 浏览

asp.net-core-webapi - Ocelot 缓存:AddCacheManager 尝试显式指定类型参数错误

Ocelot 和 .net 核心的新手。我正在尝试在 Ocelot 网关的 .net core 3.0 微服务中实现缓存。根据 Ocelot 指南 ( https://ocelot.readthedocs.io/en/latest/features/caching.html )

按照第二步,我的 startup.cs 看起来像:

编译器在AddCacheManager行抛出错误,错误消息是:

请帮忙。谢谢你。

0 投票
1 回答
435 浏览

asp.net-core - 我可以使用 Ocelot API Gateway 代理网站吗

我是 Ocelot API Gateway 的新手,想弄清楚如何执行响应主机重写?

我的 ocelot api 网关托管在 localhost:5000 上,下游服务器在另一个主机 example.com 上。我可以从 localhost:5000 代理到 example.com,但是,当 example.com 发送响应时,我被重定向到 example.com。我需要留在一个域内(本地主机:5000)。

任何帮助表示赞赏

0 投票
0 回答
409 浏览

azure - Azure 中的 Ocelot API 网关

我正在尝试使用 Ocelot API Gateway 创建有效的解决方案。我设法在我的电脑上本地创建了工作解决方案。现在我想进入下一步,将这个解决方案部署到 Azure。据我所知,为了做到这一点,我需要以下其中一项:-Docker 主机,在本地开发 PC 中,在本地或云中 -Kubernetes 集群,在本地或托管云中,例如 Azure Kubernetes 服务(AKS) -Service Fabric 集群,本地或云端 -Service Fabric 网格,作为 Azure 中的 PaaS/无服务器

我在这些方面都没有太多经验,但我认为最好的方法是在 Azure 中使用 Docker App Service。

我正在部署我的项目,但我相信我需要创建一些虚拟网络,以便这些 docker 映像能够相互通信。也许网上有一些教程?或者有人做过类似的事情吗?我会很感激一些帮助。

0 投票
0 回答
595 浏览

asp.net-core - Ocelot 网关无法从 docker compose 中的身份服务器获取配置

我有一个错误,我似乎无法理解为什么会这样。

我有一个在 docker 网络中运行的微服务架构。我正在尝试使用框架 Identityserver4 设置身份服务器。

有一个代理转发到 Ocelot 网关。客户端是一个角度应用程序。

登录和注销并检索访问令牌和身份令牌是成功的,但是当我尝试在 Ocelot 中设置身份验证时,我收到以下错误。

docker-compose就是这样设置的

Identityserver的配置方式如下

注意。发行者设置为“ http://localhost/auth

Nginx 代理服务器使用以下设置进行设置

网关配置如Ocelot Documentation中的文档所述

似乎在 docker 网络中运行的网关无法访问身份服务器。但是我已经尝试了角度调用的 URL,即

还有以多种方式在 docker 中运行的服务的名称。

但不知何故,网关无法访问身份服务器以加载发现文档。

任何人都可以指出我如何做到这一点的任何方向。

0 投票
0 回答
624 浏览

kubernetes - 将客户端转发到 Ocelot 中的同一 SignalR 实例

我们正在考虑使用 Ocelot 作为 API 网关。我们的环境托管在 Kubernetes 上。微服务之一是 signalR-Hub。需要扩展这个集线器(多个 pod),但客户端联系同一个 pod 并保持连接打开仍然很重要。

我已经看到ocelot 确实支持 websockets 和 SignalR

但是什么会接触到同一个 signalR 实例(Pod)。那可能吗?