2015-09-18 22 views
1

我在彈性平衡器後面的EC2上運行Web服務。我希望允許我的客戶將他們的A記錄指向我的Web服務,以便他們可以在我的服務器上擁有他們的域名。與shopify或github頁面類似。我的網絡服務的自定義客戶域

但是,我不想給他們的Web服務的IP,我希望請求去通過負載平衡器。我怎樣才能做到這一點?我應該創建一個小型服務器來轉發請求嗎?這是如何運作的?

非常感謝!

+0

有很多選擇,一些可行的,有些不是。到目前爲止,這裏有兩個解決問題的答案。你有沒有意識到可能涉及多少個域名?您是否期望您的客戶將他們的裸露域名指向您的服務,或其域名的子域名,還是兩者的混合? –

+0

@ Michael-sqlbot謝謝,是的,有些人會使用完整的域名,有些會使用子域名,即go.domain.com。我不想爲我的客戶託管DNS服務,我想給他們一個他們可以指向的IP。我們正在談論很多客戶端,我不想手動配置它,而是自動完成它。類似於所有那些允許您將您的域名指向他們的服務的服務(博客服務,網絡商店等) – bymannan

回答

0

如果您在Elastic Load Balancer後面運行服務,通常不想使用ELB DNS名稱(類似於your-service-ELB-1122334455.us-east-1.elb.amazonaws.com)。相反,你會配置(可能使用Route53,但任何DNS服務將做)CNAMEALIAS記錄與一些友好名稱,如yourservice.yourdomain.example(這樣,名稱將更容易記住,並且您可以自由更改負載平衡器,如果需要) 。 您所有的客戶需要做的是創造CNAME DNS record指着他們的名字你的熱情的服務DNS名稱,如:

foo-service.theirdomain.example CNAME yourservice.yourdomain.example. 

您還需要注意的是HTTP請求將包含由用戶輸入的名稱Host:頭(以如果您的服務器/服務依賴於該信息)

+0

這是一個可靠的解決方案*除非*客戶想要使用其域名的頂點(例如'example .com)而不是主域內的主機(例如'special.example.com'),因爲根據定義,區域頂點的「CNAME」無效。符合標準的DNS提供商將不會允許它。草圖提供商將會,但即使如此,它也不會在一致的基礎上正常工作,並且具有這種配置的域的其他功能將部分或完全禁用,如子域或郵件交換器(MX)配置。 –

0

您需要考慮使用Route53作爲您的客戶的DNS服務提供商可能不支持此功能,因爲DNS規則。的RFC 1034

見s3.6.2亞馬遜創造了一個新的鋸齒系統中的路由53.現在,您可以託管區的頂點映射到使用別名記錄的彈性負載均衡。當路由53遇到別名記錄時,它查找與別名中的目標DNS名稱關聯的A記錄,並從該名稱返回IP地址。

爲了讓我們的所有客戶都能從這個新功能中受益,當目標是Elastic Load Balancer時,查詢別名記錄不收取任何費用。

Associating Your Custom Domain Name with Your Load Balancer Name.

您也可以create a Subdomain That Uses Amazon Route 53 as the DNS Service without Migrating the Parent Domain

+0

這是有效的,但它需要OP爲客戶提供全部或部分DNS主機。 (我的客戶無法註冊AWS並在我的ELB中指向別名;只有我可以這麼做,因爲Alias只能在同一AWS賬戶中工作。) –

相關問題