0

因此,我之前使用過類似Route 53的內容。現在我有一個項目,其中將有一個網站通過靜態頁面提供,但使用Javascript來訪問API。靜態頁面存儲在緩存在雲端的S3中,API是與一些後端邏輯關聯的API網關。AWS將域名同時指向雲端和API

我該如何做到這一點,因此www.site.com指向雲端附加的S3實例,但www.site.com/api/重定向到我的api?這甚至有可能嗎?

回答

1

如果使用api.site.com或其他類似的子域而不是www.site.com/api,則不需要在APIGW API處指向CF分佈。

APIGW已經被一個CF發行版所佔據;自定義域名功能允許您導入附加到現有CF分配的SSL證書。然後,APIGW提供CF分配的域名,以便您可以配置像api.site.com這樣的子域記錄來指向它。

http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html

2

使用DNS無法做到這一點。

取而代之,您可以使用CloudFront同時支持:S3存儲桶和API。

  1. 創建CloudFront分配。
  2. 將其設置爲www.site.com的別名
  3. /api創建一個「行爲」,並讓它使用指向您的API的原點。
  4. 對於其他任何事情都有第二種(默認)行爲,並讓它使用指向S3存儲桶的原點。
  5. 最後,使用Route53將www.site.com指向您的CloudFront分配。
0

是的,您可以在AWS中執行此操作。

創建CloudFront分佈,將您的域名指向CloudFront,並將其指定爲Route53

在新創建的分佈中,找到Origins選項卡,選擇Create Origin。添加一個路徑/api,指向API網關/一個ELB /一個EC2。

然後創建另一個原點,添加路徑/cdn,將其指向s3存儲桶。

+0

嗨,謝謝你的回答。 我這樣做,但我有一個嚴重的問題。嘗試使用內容類型application/x-www-form-urlencoded將POST請求直接發送到api作品,但將cloudfront發佈指向api會讓我在嘗試使用它時無法滿足錯誤(例如: stuff.cloudfront.net/test - > unique_id.execute-api.ap-northeast-1.amazonaws.com/test,然後發佈stuff.cloudfront.net/test/email以獲取/ email api部分) – JapanRob