jakarta-ee - 为什么 WSO2 API Manager 有时会出错:代理错误代理服务器收到来自上游服务器的无效响应?
问题描述
我是WSO2 AM的新手,我有以下问题。
我在发布者上注册了一个 API,并在商店中获得了它。按照组织政策,我创建了一个生成不记名令牌的应用程序,并将我的 API 订阅到该应用程序。
所以我使用这个令牌来执行我的请求,如下所示:
curl -X POST --header "Content-Type: application/json" --header "Accept: application/json" --header "Authorization: Bearer 7cc2337d64ca7238ec3534c251f72e34" -d @user_registration_sample_3.json "https://api.myorganization.org/api/dsa/v1.0.0/user_registration"
我测试了它并且它有效。它调用我的后端 API 并将结果正确返回给客户端。问题是在一些请求之后它开始出错并且我停止获取请求。有时有效,有时无效。
当它出错时,我收到此消息:
$ curl -X POST --header "Content-Type: application/json" --header "Accept: application/json" --header "Authorization: Bearer 7cc2337d64ca7238ec3534c251f72e34" -d @user_registration_sample_3.json "https://api.myorganization.org/api/dsa/v1.0.0/user_registration"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 644 100 444 100 200 3 1 0:03:20 0:02:00 0:01:20 64<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>502 Proxy Error</title>
</head><body>
<h1>Proxy Error</h1>
<p>The proxy server received an invalid
response from an upstream server.<br />
The proxy server could not handle the request <em><a href="/api/dsa/v1.0.0/user_registration">POST /api/dsa/v1.0.0/user_registration</a></em>.<p>
Reason: <strong>Error reading from remote server</strong></p></p>
</body></html>
所以我正在尝试进行一些故障排除,但我知道这个问题的可能原因。
我认为问题不在我的后端(如果我直接调用我的后端端点,它工作正常,我从未收到错误,但我对此并不完全确定)所以问题应该出在 API 管理器中。它开始工作,一段时间后它恢复工作。我的后端是一组使用 WSO2 ESB 开发并部署在 WSO2 EI 实例上的 API。
我还认为这可能是与发送给 API 管理器的请求数量有关的问题(也许有一些配置说:“在 5 个请求之后 --> 等待一段时间”。但我认为应该是不是问题,因为我的 API的Tiew Availability设置为Unlimited。此外,我的令牌设置为不过期(令牌的过期时间设置为-1值,表示不过期)。
那么你认为这可能是一个系统性问题吗?(据我所知,WSO2 基础设施部署在集群中,可能集群的某些节点无法正常工作,当损坏的节点收到请求时无法处理)或网络问题?
什么 exaclty 意味着前面的错误消息:什么是代理服务器,什么是上游服务器?
解决方案
推荐阅读
- javascript - 对象可能未定义,即使有空检查
- django - 如何解决 Django 中的 CSRF“Forbidden Cookie not set”错误?
- etherpad - 创建一个 etherpad x 分钟,x 分钟后,同一个 etherpad 应该处于只读模式
- laravel - laravel 页面长时间空闲后过期
- react-native - Azure DevOps CI 构建成功后崩溃
- java - Android 启动后启动应用程序
- javascript - 获得“首屏”/渲染“首屏”的关键元素的高性能方法?
- postgresql - 在 PostgreSQL 中使用 UNNEST() 连接,以访问触发器的 OF 列名
- javascript - 如何在反应材料表上添加花哨的滚动条?
- git - 如何解决 git describe --match 限制