【问题标题】:AWS API Gateway returning { "message": "Internal Server Error" } in HTTP proxy integrationAWS API Gateway 在 HTTP 代理集成中返回 {“message”:“Internal Server Error”}
【发布时间】:2021-08-08 21:22:32
【问题描述】:

我已经解决这个问题两天了。我在 AWS 中有一个 HTTP API 网关,其中我有不同的路由与 HTTP 代理集成。例如:

“https://apigateway.domain.com/service/path”路由到“https://service.domain.com/path”。

'apigateway.domain.com' 是在 API Gateway 上配置的自定义域名,'service.domain.com' 是一个域名,其 dns 条目是带有 ubuntu 和 nginx 的 EC2 实例的弹性 IP。

直到今天,我们都有不同的路由都指向一些 EC2 实例和我们在西班牙的主要 Web 应用程序。我们正在配置我们必须提供服务的另一个国家/地区。我们在 us-west-1 区域为它启动了一些 EC2 实例,分配了一个弹性 IP 并创建了它的域名。

问题是我们向 apigateway.domain.com/country/service/path 发出请求,它以 500 状态码回答:

{
    "message": "Internal Server Error" 
}

如果我直接对 EC2 实例的域名执行相同的请求,它会以 200 状态代码回复我。

对 api 网关的请求没有到达 ec2 机器,因为我在 nginx 日志中找不到该请求。 我尝试使用 Cloudwatch 和 X-ray 调试这种情况,但没有找到足够的信息:

{ "accountId": "", "apiId": "", "授权错误”: “-”,“basePathMatched”:“(无)”,“fullDomainName”:“********”, "msgString": " "内部服务器错误"", "httpMethod": "GET", “integStatus”:“200”,“requestId”:“flJRogGhliAEPUA=”,“ip”: "138.199.37.68", "requestTime":"19/May/2021:14:36:32 +0000", "httpMethod":"GET","routeKey":"ANY /mx/staging/tmc/{proxy+}", “状态”:“500”,“协议”:“HTTP/1.1”,“响应长度”:“35”,“错误”: “内部服务器错误”,“errorResponseType”:“INTEGRATION_FAILURE”, “integrationErrorMsg”:“-”,“authorizerError”:“-”,“integErrorMsg”: “-”,“状态”:“500”}

remote指的是ec2实例的域名。

我已经检查了多次安全组,它似乎很好(从我们拥有西班牙主要 ec2 实例的法兰克福地区复制而来)。我们在这个区域有一个 EC2 实例,并且 api 网关正确地为它做代理,所以我们怀疑在请求到达机器本身(我不知道,iptables 或类似的东西,我不是专业的 linux 呵呵)。

如果有人与类似的东西打架,请告诉我们,因为我们已经被阻止了。

谢谢

【问题讨论】:

    标签: ubuntu nginx amazon-ec2 aws-api-gateway


    【解决方案1】:

    在到达 AWS 支持团队后,发现最终 nginx 服务器上的 SSL 证书存在问题(格式错误)。 他们告诉我他们会改进这个错误信息,因为它不是那么具有描述性。

    【讨论】:

      猜你喜欢
      • 2020-12-20
      • 2022-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-28
      • 2017-04-07
      • 2016-12-07
      • 1970-01-01
      相关资源
      最近更新 更多