【问题标题】:API Gateway Proxy to VPC LinkAPI Gateway 代理到 VPC 链接
【发布时间】:2018-09-06 07:42:13
【问题描述】:

我正在尝试使用 API Gateway 将流量路由到内部网络负载均衡器。

到基本路径 (/) 的所有路由都在工作,所以我知道 VPC 链接已启动且可访问。

我使用任何 http 方法添加了一个代理资源 (/{proxy+})。在我选择的任何“集成请求”中:

  • 集成类型:VPC 链接
  • 使用代理集成
  • 方法:任意
  • VPC 链接:My-VPC-link (abcdefg)
  • 端点网址:(即http://abcd1234.cloudfront.net/{proxy})

我可以看到我的网络服务器以重定向响应:

(b9d0c629-31ec-11e8-b452-0f13c3c62b81) Endpoint response body before 
transformations: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>Redirecting...</title>
<h1>Redirecting...</h1>
<p>You should be redirected automatically to target URL: <a href="http://abcd1234.cloudfront.net/api/">http://abcd1234.cloudfront.net/api/</a>. If not click the link.
(b9d0c629-31ec-11e8-b452-0f13c3c62b81) Method completed with status: 301

网页显示:

{"message":"Forbidden"}

另外,如果我尝试直接链接到 CloudFront URL,我会收到同样的错误。

除了 CloudFront URL,我还尝试了以下方法:

  1. 自定义域名

    403 禁止

  2. 我部署的阶段的 URL

    {"message": "内部服务器错误"}

集成请求的“端点 URL”字段中应包含什么 URL?

【问题讨论】:

  • 您需要开始在您的服务器上解决此问题,因为这是生成重定向的原因。看起来您的 PrivateLink 工作正常,但是服务器认为传入的请求会导致重定向。服务器日志应该会向您显示这一点。
  • 感谢您的回复。重定向应该发生,并出现在服务器日志中。我现在更进一步:“此页面重定向您的次数过多。”

标签: aws-api-gateway amazon-vpc elastic-load-balancer api-gateway


【解决方案1】:

您的 API 网关配置中的一切似乎都井井有条,包括端点 URL。

我的猜测是你在重定向一些东西。您的服务器是否可能一次又一次地重定向到同一个地方,或者重定向规则总是适用?

为确保问题出在您的服务器端,请尝试更简单的设置。尝试对不重定向的地方进行 API 调用,只返回一个简单的响应。

【讨论】:

    【解决方案2】:

    事实证明,API-Gateway 必须使用“http”而不是“https”调用 VPC 链接作为 VPC 链接 URL。

    【讨论】:

    • 任何提到这一点或只是反复试验的文档?
    • 这取决于 NLB 配置。如果设置为接受 TLS,则可以是 https。
    • 您可以将 https 作为 vpc 链接 url。您需要使用与在 apigateway 中配置自定义域相同的证书 + NLB 必须使用相同的证书。我在我的项目中已经这样做了 - 1. 创建证书 api.service.com 并添加 SAN app.service.com。 2. 在 route53 记录集中,为 app.service.com 映射到您的私有 nlb url 创建别名条目。 3. 在apigateway中配置方法时使用app.service.com url而不是自动生成的nlb dns。
    猜你喜欢
    • 2020-11-19
    • 2021-08-12
    • 2022-06-14
    • 2020-04-19
    • 1970-01-01
    • 2017-04-06
    • 2020-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多