簡體   English   中英

基於路徑的Cloudfront和EC2路由

[英]Path based routing to cloudfront and ec2

因此,當前我們有兩個ec2實例(分別說A和B)和一個雲前。

如果用戶訪問www.appdomain.com/app,則應將其路由到cloudfront SPA頁面。 但是,如果用戶訪問www.appdomain.com,則應將其路由到EC2實例A,如果用戶訪問www.appdomain.com/api,則應將其路由到EC2實例B。

所有這些應用程序必須位於同一域中。

現在,我們了解了如何使用應用程序負載平衡器設置路徑規則,但也想知道如何將其設置為Cloudfront。

更新:所以總的來說,問題是我們如何將/ app路由到cloudfront /和/ api路由到ec2。

所有這些應用程序必須位於同一域中。

在這種情況下,對該域的每個請求都必須首先通過CloudFront。

您的DNS記錄將需要指向CloudFront(而不是ALB),然后CloudFront負責將請求路由到適當的目標-通過ALB到EC2實例,到S3存儲桶以及您需要將請求轉到何處-這些都被稱為內容來源

一旦通過其各自的域名(不是您網站的域名,而是專門用於所涉及資源的域名)指定了來源,就可以定義CloudFront 路徑模式以選擇接收每個模式請求的來源(例如/api* )。

將您的DNS更改為指向CloudFront之后,所有請求都將首先發送到CloudFront,然后移交給下一個服務,除非CloudFront擁有所請求對象的緩存副本-在這種情況下,CloudFront將從其緩存中為其提供服務,並且什么都不會發送到原點。

您不能從ALB路由到CloudFront,但是可以從CloudFront路由到ALB。

如果不使用能夠匹配路徑並代表請求者獲取內容的反向代理,則無法將域細分為多個不同的基於路徑的內容來源,HTTP和DNS不支持此類功能。 除了提供CDN服務之外,CloudFront還是反向代理。

當然,ALB也是反向代理,但不支持CloudFront所支持的多種不同類型的內容來源-ALB僅支持EC2實例,數據中心中的服務器(在這種情況下,ALB必須在其中具有VPN路徑)以達到目標),而Lambda則作為內容來源。 只要使用HTTP / HTTPS並且可以通過Internet進行訪問,CloudFront便可以將任何內容用作內容來源。 (要選擇一個隨機的示例,CloudFront甚至可以使用來自其他供應商的服務(例如Google Cloud Storage存儲桶)作為內容來源,如果出於某種原因您需要這樣做,因為這些都是可以通過HTTP通過公共互聯網訪問。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM