Nginx

使用 nginx 將域根目錄重定向到 CloudFront?

  • February 1, 2022

注意 - 我看到其他幾個關於重定向其 S3 靜態網站根目錄的問題,但我沒有看到任何關於域名根目錄重定向CloudFront/S3 站點的任何內容。

我將我的個人網站部署到 AWS CloudFront 並靜態託管在 S3 上。我有一個全球資訊網。CNAME 記錄指向 CloudFront 主機名,並且工作正常,但我發現您不能擁有域根目錄的 CNAME 記錄。我已經有一個帶有 nginx 的 VPS,它託管了我的幾個其他項目 - 只需將域根目錄中的 A 記錄添加到我的 VPS IP,並讓 nginx 將對域根目錄的請求重定向到 CloudFront 主機名,是否可以?

編輯:澄清 - 我希望將所有前往 example.com 的流量轉發到分配給我的網站的 CloudFront 主機名。我可以通過為“www.”創建 CNAME 記錄來使用www.example.com執行此操作。指向所需的主機名。但是,Google Domains 似乎不允許為根創建 CNAME 記錄(即只是 example.com),所以我想知道如何將流量從 example.com 轉發到我的 CloudFront 主機名(而不是我可以現在就做,這只是將www.example.com轉發到 cloudfront)。

如果它是相關的,我不能做任何類型的萬用字元重定向,因為我在域上使用其他主機名用於需要特定 A 記錄的不同項目。

這將是該站點的可接受/良好實踐的 nginx 配置嗎?我認為它會起作用,因為www.example.com已經正確轉發到 CloudFront 主機名。

server {
       listen 443 ssl;
       server_name example.com;
       rewrite ^/$ https://www.example.com permanent;
       ssl_certificate           /etc/letsencrypt/live/example.com/fullchain.pem;
       ssl_certificate_key       /etc/letsencrypt/live/example.com/privkey.pem;
}

通過域根,我假設您的意思是 example.com,而不是www.example.com,並且您希望將其指向您的 AWS 雲 Web 應用程序。您可以做的一件事是創建一個名為 @ 的 A 記錄,該記錄實質上是說“這是我。對我 (example.com) 的任何 DNS 請求都應該轉到此 IP 地址。” 然後添加一個指向 @ 的 CNAME www。如果你願意,你可以使用 Nginx,用於直通的 Nginx 只是一個反向代理。它將充當客戶端和伺服器之間任何請求的中間人。Nginx 只是在客戶端和伺服器之間重複這些消息。

我希望這有幫助,我的感覺是我讀錯了問題

引用自:https://serverfault.com/questions/1091613