【问题标题】:How to add a custom domain for AWS Websocket API Gateway?如何为 AWS Websocket API Gateway 添加自定义域?
【发布时间】:2021-06-08 15:45:39
【问题描述】:

我创建了一个 AWS Websocket API 网关。它给了我一个如下端点:

wss://**********.execute-api.**-*****-*.amazonaws.com/dev

我需要将其更改为自定义域。怎么可能做到。我可以看到 AWS 提供的这个 URL 是 wss 协议 URL。

  • 该怎么做?
  • 我可以从 route53 使用 https://*****.com 吗?
  • 如果没有,如何创建自定义 wss 域?
  • 还是我必须做点别的事情

【问题讨论】:

    标签: amazon-web-services websocket aws-api-gateway


    【解决方案1】:

    一个 URL 以紧凑的形式表示多条信息。被要求请求“https://example.com/some/path”的浏览器将:

    • 在 DNS 服务中查找“example.com”的服务器地址;这部分不知道也不关心 URL 的其余部分,它只需要一个 IP 地址
    • 使用“https”协议连接到该服务器;这意味着通过 TLS 使用 HTTP,并默认使用 TCP 端口 443
    • 连接后,请求路径“/some/path”

    理论上,将另一个域(例如“forward.example.org”)指向 DNS 中的同一服务器将允许 URL“https://forward.example.org/some/path”提供相同的内容。在实践中,许多服务器被设置为接收来自多个不同域的请求,并提供不同的内容,因此服务器还需要有一个规则,用于为该内容提供哪些内容。

    使用像“wss://example.com”这样的 URL 是完全一样的:

    • 域名需要解析为适当的 IP 地址。由于您不想对该地址进行硬编码,因此您可以使用外部 DNS 服务中的 CNAME 或 Route53 中的 ALIAS 记录来执行此操作
    • 服务器需要知道该主机名,才能知道为其服务的 API。在这种情况下,这意味着在 API Gateway 中设置“自定义域”设置。

    另一个步骤 - 通过“wss”而不是“https”协议连接 - 不会改变服务器的查找方式,因此不会对过程产生任何影响。

    【讨论】:

      【解决方案2】:

      我找到了答案。按照以下步骤将自定义域添加到 AWS Websocket API Gateway

      1. 转到 API 网关
      2. 转到“自定义域名”
      3. 创建一个域名。示例 api.company.com
      4. 复制“API网关域名”
      5. 前往 53 号公路
      6. 用域名添加记录名称
      7. 设置为 CNAME
      8. 对于值粘贴您已复制的“API 网关域名”
      9. 现在使用带有 wss:// 的域名。例如,wss://api.company.com 连接到 websocket

      回来点赞吧!

      【讨论】:

      • 第 8 步对我解决这个问题至关重要!没想到“API Gateway > Custom domain name”居然创建了一个新的API Gateway域名Endpoint。我改用“WebSocket URL” - 傻我......:/
      猜你喜欢
      • 1970-01-01
      • 2018-12-26
      • 2020-10-04
      • 2018-05-29
      • 1970-01-01
      • 2020-01-06
      • 2020-01-16
      • 2018-07-02
      • 1970-01-01
      相关资源
      最近更新 更多