我們有一個www.domain.com
解析為由 AWS EC2 Nginx 執行個體支援的 AWS 負載平衡器。
www.domain.com:8888
AWS 後端 Web 應用程式的代理程式。
www.domain.com:443
從 EC2 磁碟提供靜態 html,但下列情況除外:
/app/
代理程式到 EC2 上運行的動態後端應用程式的路徑- 404 回應也代理到相同的動態後端 EC2 以取得自訂錯誤頁面。
目標:能夠直接從網域下的 S3 儲存空間提供靜態 html www.domain.com
(我們目前將 S3 靜態檔案同步到 Nginx 伺服器的磁碟)。
考慮的選項:
具有故障轉移來源組的 Cloudfront 將很好地處理連接埠 443 流量。但如果我們
www.domain.com
與cloudfront聯繫起來,顯然沒有任何東西會監聽www.domain.com:8888
。如果我們有一個負載平衡器提供偵聽器,
www.domain.com
我們就可以處理連接埠 443 和 8888 上的動態流量。我相信這可以透過 S3 的 VPC 端點實現。但這可以處理 404 故障轉移嗎? (參考:https://aws.amazon.com/blogs/networking-and-content-delivery/hosting-internal-https-static-websites-with-alb-s3-and-privatelink/)我們開始了一個將
www.domain.com:8888
流量轉移到的項目alt.domain.com:443
,然後使用選項1www.domain.com:8888
。www.domain.com
擁有一個前端 Nginx 代理,將 8888 流量代理到負載平衡器,將 443 流量代理到 Cloudfront。透過強制客戶端流量透過代理商到達那裡,這將抵消使用 Cloudfront 的許多優點。另外,我們需要透過 Amazon ACM 外部的 Lets Encrypt 處理 SSL 終止。
選項 3 似乎是最乾淨的選項,但不會很快或輕易發生......所以我們正在尋找替代方案。
我們還應該考慮其他選擇嗎?