我在一台非常受限的服务器上安装了 Mule API 代理。为了查看代理是否正常工作,我从服务器尝试了以下操作:
curl https://localhost:8080/console/
正如预期的那样,代理响应了一些 html:
<!doctype html>
<html lang="en">
...
<api-console-app ...>
..
当尝试发送有效请求时:
curl -Lv -X 'GET' 'https://localhost:8080/<basepath>/<some valid path>' -H 'accept: application/json'
它返回 http 代码 503:
* About to connect() to localhost port 8080 (#0)
* Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 8080 (#0)
* Initializing NSS with certpath: ...
* skipping SSL peer certificate verification
* SSL connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
* Server certificate:
* ...
> GET /...
> User-Agent: curl/7.29.0
> Host: localhost:8080
> accept: application/json
>
< HTTP/1.1 503 Service Unavailable
< Content-Type: text/plain; charset=UTF-8
< Content-Length: 0
< Date: Thu, 17 Aug 2023 17:10:48 GMT
< Connection: close
<
* Closing connection 0
值得一提的是,如果我更改基本路径,我会收到 404 - 未找到错误,因此我将到达代理。
我在 Mule API 日志或 Anypoint 平台(门户)中找不到错误。
有任何想法吗?我如何记录/访问日志?
您可能没有设置凭据,以便 API 在执行时可以连接到 API Manager。有一个名为Gatekeeper 的安全功能,可以防止 API 无法连接以应答请求,而是返回 503 状态。这是为了防止未从 API Manager 接收策略的 API 不安全地执行。您应该:
其他参考:https://help.mulesoft.com/s/article/API-returns-503-Service-Unavailable-error-to-clients