Instalei um proxy Mule API no local em um servidor muito restrito. Para ver se o proxy está funcionando, tentei o seguinte no servidor:
curl https://localhost:8080/console/
Como esperado, o proxy respondeu com algum html:
<!doctype html>
<html lang="en">
...
<api-console-app ...>
..
Ao tentar enviar uma solicitação válida:
curl -Lv -X 'GET' 'https://localhost:8080/<basepath>/<some valid path>' -H 'accept: application/json'
Ele retorna o código 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
Vale a pena mencionar que, se eu alterar o caminho base, recebo um erro 404 - não encontrado, então estou alcançando o proxy.
Não consigo encontrar o erro no log da API Mule ou na plataforma Anypoint (portal).
Alguma ideia? Como posso gravar/acessar o log para isso?
Você provavelmente não configurou as credenciais para que a API possa se conectar ao API Manager durante a execução. Existe um recurso de segurança chamado Gatekeeper que impede que APIs não se conectem para responder a solicitações e, em vez disso, retorna o status 503. Isso evita que uma API que não esteja recebendo políticas do API Manager seja executada sem segurança. Você deve:
Referências adicionais: https://help.mulesoft.com/s/article/API-returns-503-Service-Unavailable-error-to-clients