將 AWS Cloudfront 用於偵聽非 443 連接埠的網域

將 AWS Cloudfront 用於偵聽非 443 連接埠的網域

我們有一個www.domain.com解析為由 AWS EC2 Nginx 執行個體支援的 AWS 負載平衡器。

www.domain.com:8888AWS 後端 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,然後使用選項1 www.domain.com:8888www.domain.com

  • 擁有一個前端 Nginx 代理,將 8888 流量代理到負載平衡器,將 443 流量代理到 Cloudfront。透過強制客戶端流量透過代理商到達那裡,這將抵消使用 Cloudfront 的許多優點。另外,我們需要透過 Amazon ACM 外部的 Lets Encrypt 處理 SSL 終止。

選項 3 似乎是最乾淨的選項,但不會很快或輕易發生......所以我們正在尋找替代方案。

我們還應該考慮其他選擇嗎?

相關內容