dig +trace:我的域無法訪問任何伺服器?
我正在 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
4. 我已經按照這個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
?這是什麼意思?我該如何解決它並完成流程?
frontend.myapp.com. 14400 IN NS d-123sdf1234asd.execute-api.ap-northeast-1.amazonaws.com.
NS
記錄類型用於名稱伺服器。目前記錄本質上是在說:如果您想知道與
frontend.myapp.com
子域或該子域下的任何記錄相關的任何 DNS,請詢問執行在其上的名稱伺服器d-123sdf1234asd.execute-api.ap-northeast-1.amazonaws.com
並且 d-123sdf1234asd.execute-api.ap-northeast-1.amazonaws.com 根本不是名稱伺服器,因此對那裡發送的 DNS 查詢不會有任何響應。
這就是
connection timed out; no servers could be reached
你看到的錯誤。我認為你的意圖是設置一個 DNS
CNAME
記錄,基本上是說,如果你想訪問 frontend.myapp.com。使用 d-123sdf1234asd.execute-api.ap-northeast-1.amazonaws.com 的 IP 地址。