
TLDR:當我建立此 DNS 記錄時:
whatever.mydomain.com. IN CNAME biglongjibberstring.r89.cf2.rackcdn.com.
Rackspace 如何知道我選擇的隨機主機名稱應該轉到我的雲端文件容器/帳戶而不是其他客戶?
我剛剛測試了一個將 Cloud Files 與 Rackspace 結合使用的簡單範例。我製作了一個雲端檔案“容器”並啟用了“靜態網站”選項。我上傳了範例圖像和範例 index.html 檔案。現在可以透過這個超長的 URL 取得此容器中的這些文件,UI 告訴我可以將其用作我的網域的 CNAME:
果然,新增了 CNAME 記錄,例如:
whatever.mydomain.com。在 CNAME biglongjibberstring.r89.cf2.rackcdn.com 中。
正在瀏覽至http://whatever.mydomain.com/有效(測試了主頁和圖像)。但是,當它看到對「whatever.mydomain.com」(在 HTTP 主機標頭中)的請求時,它怎麼可能知道它是針對我的特定雲端文件容器的呢?
這似乎與 DNS 有關,因為如果我將「blah.example.com」放入主機檔案中,IP 位址為 biglongjibberstring.r89.cf2.rackcdn.com。解析為 - 不起作用(給出有關無效 URL 的錯誤 - 似乎來自 Akamai)。我能看到這個工作的唯一方法是,whatever.mydomain.com 的DNS 查找以某種方式將“whatever.mydomain.com”和“biglongjibberstring.r89.cf2.rackcdn”之間的關係傳回Rackspace/Akamai DNS 伺服器。但我從未見過這種方法,我什至不認為返回 Rackspace/Akamai 的 DNS 查找實際上包含此所需的資訊(儘管我可能是錯的)。
有人知道這裡發生了什麼黑魔法嗎?
答案1
在觀察了這些行為之後,我對他們合理行為的最佳猜測是:
當 HTTP 請求到達 CDN 節點之一且該請求具有未知Host
標頭時,它們會自行在標頭中尋找名稱Host
。
如果這個名稱被證明是CNAME
對已知名稱的參考(在表單上<identifyinginformation>.rackcdn.com.
),它們會將標頭中的名稱Host
與適當的資源相關聯,否則它們將傳回錯誤。
這是推測性的,但這是我能想到的符合技術上可行以及觀察到的行為的內容。這Rackspace 上的文檔沒有具體說明它實際上是如何運作的,但希望他們的支持能有所幫助。
如果有人想自己進一步實驗,Rackspace 員工會提到該 URLhttp://124f4d373d9886355285-0dddf6f52a326dca397d3ae1202a22fd.r49.cf2.rackcdn.com/1_logs_dir.png作為上面連結的文檔頁面的評論中的範例。只需將 a 新增CNAME
至該 URL 的主機部分,相應地修改 URL 並嘗試。