
我在一台伺服器上為我的客戶提供多個網站。在開發過程中,我只是在自己的網域上建立一個子網域。例子client.mydomain.example
。我的客戶通常已經擁有其他提供者的網域和電子郵件。我不想為我的客戶託管電子郵件。
我嘗試了三種不同的設定 DNS 的方法:
clientdomain.example
從to進行 HTTP 重新導向www.clientdomain.example
,然後建立 CNAME 記錄以www.clientdomain.exmple
指向我的伺服器上的暫存子網域client.mydomain.example
。- 有一條指向我的伺服器 IP 的 A 記錄
(*.)clientdomain.tld
,但保留 MX 等指向其目前的電子郵件主機。 - 設定我自己的名稱伺服器並將其用於我客戶的網域。然後再照2一樣的方法設定。
據我所知,這三種方法各有利弊:
- 優點:方便的。我可以更改伺服器上的 IP 位址、移動到另一個伺服器公園、設定故障安全、負載平衡等。
缺點:我強迫我的客戶使用www
,如果他們已經有一個網站,non-www
他們可能會遭受 SEO-vise(?)。此外,額外的 CNAME 記錄也不利於頁面速度。 - 優點:沒有搜尋引擎優化或頁面速度問題。設定簡單。
缺點:如果我需要更改 IP,我需要對所有用戶端網站進行 DNS 變更。 - 優點:沒有搜尋引擎優化或頁面速度問題。如果我需要更改伺服器,我可以立即為所有用戶端網站執行此操作,因為 DNS 設定可以輕鬆地在我自己的名稱伺服器上設定。
缺點:我需要運行我自己的名稱伺服器。我還必須為我的客戶設定 MX 記錄以及可能的其他 DNS 記錄。
我現在首選的方法是 1. 因為我認為對於我的大多數情況來說利大於弊。
有沒有其他方法可以在不指定 IP 位址的情況下從網域重新導向到伺服器?
說明:解決方案 1 對我來說有效,但速度較慢,因為在到達最終 A 記錄之前需要執行兩個步驟。理想情況下,我希望將 和 都指向non-www
我www
的伺服器網域,但據我所知,這對於 CNAME 記錄是不可能的,對嗎?
答案1
請注意,aCNAME
根本不是HTTP 重定向。
這裡只有重定向是從 到的
example.com
,www.example.com
並且可以使其永久。額外的內容CNAME
位於 DNS 層級並將被緩存,因此它根本不會真正影響網站效能或速度。無論誰託管 DNS,您的 Web 伺服器都需要了解用戶端網域。
這就是為什麼我更喜歡你的案例#1,以便更好地理解:
- 如有必要,請指導您的客戶新增
www.example.com. CNAME client.example.net.
以能夠自行更改 IP 位址。 - 建議如何在目前的 Web 伺服器上從非 www 重新導向到 www。
client.example.net
在您的網頁伺服器設定中將實際網域名稱綁定到您的網域名稱。
對於情況 #3,您不僅會在技術上託管 DNS 伺服器,而且還負責在用戶端需要新的第三方記錄時進行更新。
答案2
因此,如果我理解正確的話,您想要做的就是在開發階段之後能夠將 cname 簡單地指向您的伺服器 (client.mydomain.tld) 並在您自己的伺服器上處理其餘部分。
我現在在 Cloudflare 的設定中嘗試管理我的 DNS 條目,只是放置兩條 CNAME 記錄,一條是 www.client.tld,一條是 client.tld。之後,您可以在伺服器上處理請求,只需根據特定需求重寫 URL 即可。
我也會選擇你的第一個選項,因為它是最容易處理的。
我還在這裡找到了一些關於CNAME記錄使用的資訊: CNAME 應該用於子網域嗎?