我正在 AWS 中构建我的应用程序。
我已经在 EC2 实例中部署了我的 Reactjs 前端项目。我不想让外部互联网世界的用户直接访问我的 EC2 实例,而是将它放在 AWS API 网关后面。因此,AWS API Gateway 将成为我的应用程序前端和后端服务的单一入口点。这是计划:
外部世界 ---> AWS API Gateway ---> 网络负载均衡器 ---> 我的 VPC 目标组/EC2 实例
这是我所做的:
Reactjs Frontend 项目在 EC2 实例中运行良好;我可以使用 EC2 实例的公共 IP 地址访问网页。
配置良好的目标组和网络负载均衡器。我通过在浏览器中输入 NLB 的 DNS 名称来确认,即
http://myapp-frontend-NLB-c11112esd43524rw.elb.ap-northeast-1.amazonaws.com
,它成功加载/打开了我的应用程序的前端网页。我创建了新的 AWS API Gateway (REST API) 并为其配置了自定义域名。(在 AWS Certificate Manager 中处理了 https 证书)。
即自定义域是
frontend.myapp.com
;API网关域名是d-123sdf1234asd.execute-api.ap-northeast-1.amazonaws.com
我已经
NS
在我的 DNS 提供商中为他们创建了新记录,因此frontend.myapp.com
指向d-123sdf1234asd.execute-api.ap-northeast-1.amazonaws.com
我已经按照这个aws文档:https ://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-with-private-integration.html一步一步配置了VPC链接、API资源、集成类型, ETC。
部署创建的 API 后,当我点击打开 Invoke URL 时,(以 的形式https://123qwe123qe.execute-api.ap-northeast-1.amazonaws.com/[stage]
),我可以看到返回的 HTML 代码。
我预计当我frontend.myapp.com
在浏览器中访问时,DNS 最终会将流量引导到 API Gateway 的域名d-123sdf1234asd.execute-api.ap-northeast-1.amazonaws.com
,然后 API Gateway 会将请求传递给 NLB 等,最终加载网页 / 或返回相同的 HTML 代码。
但是,当我frontend.myapp.com
在浏览器中访问时,没有任何响应。我认为 DNS 记录不起作用。dig +trace docloud.iwg-inc.co.jp.
给出以下结果:
; <<>> DiG 9.10.6 <<>> +trace frontend.myapp.com.
;; global options: +cmd
. 3240 IN NS i.root-servers.net.
. 3240 IN NS d.root-servers.net.
. 3240 IN NS b.root-servers.net.
. 3240 IN NS m.root-servers.net.
. 3240 IN NS j.root-servers.net.
. 3240 IN NS h.root-servers.net.
. 3240 IN NS f.root-servers.net.
. 3240 IN NS g.root-servers.net.
. 3240 IN NS k.root-servers.net.
. 3240 IN NS c.root-servers.net.
. 3240 IN NS a.root-servers.net.
. 3240 IN NS l.root-servers.net.
. 3240 IN NS e.root-servers.net.
;; Received 811 bytes from 240d:1a:6a5:c900:e67e:66ff:fe1f:bf4c#53(240d:1a:6a5:c900:e67e:66ff:fe1f:bf4c) in 29 ms
...other results...
frontend.myapp.com. 14400 IN NS d-123sdf1234asd.execute-api.ap-northeast-1.amazonaws.com.
;; Received 117 bytes from 54.68.111.244#53(ns4.jp-domains.jp) in 131 ms
;; connection timed out; no servers could be reached
如您所见, frontend.myapp.com.
确实指向d-123sdf1234asd.execute-api.ap-northeast-1.amazonaws.com.
作为NS
记录。
但是,它说connection timed out; no servers could be reached
。
d-123sdf1234asd.execute-api.ap-northeast-1.amazonaws.com.
是我的 API Gateway 的自定义域名,我用调用 URL 测试过,它连接到服务。
为什么会这样说no servers could be reached
?
这是什么意思?我该如何解决它并完成流程?