2016-03-07 101 views
0

我需要客戶能夠將他們自己的自定義域名指向我的GAE應用。如何在Google App Engine中使用未經驗證的自定義域名

例如customersdomain.com - CNAME - > myapp.com(它又指向myapp.appspot.com)

我知道我可以將域名鏈接到我的Google帳戶,然後使用該域名來爲應用引擎提供服務,但是這個過程沒有擴展,並且需要我直接訪問客戶的域名註冊/ DNS。唯一的另一種選擇是強制客戶註冊Google Apps(爲什麼!)。

幾乎所有其他的PaaS使這個過程無痛:

  • 在Heroku的,我只需將域添加到白名單和 增加了CNAME記錄的客戶。
  • 在AWS中,指向該實例的單個CNAME記錄會執行該操作。

有沒有人知道這方面的解決方法?或者我只是需要手動將數百個域名鏈接到我的帳戶?

回答

1

你在問一些不可能的事情。 App Engine不使用固定IP,所以它不能根據IP來決定它應該提供哪個應用程序。

GET http://custom.example.com/resource.html 

服務器提取域部分「custom.example.com」以及在這一領域的應用程序是由您的要求意味着決定:選擇由包含URL,像這樣的要求而作出。爲了做到這一點,它必須有一個映射表以及哪些域映射到哪個應用程序。正是這個映射表,您必須通過在開發人員控制檯中輸入您的域來填充。

當您的域名上有cname記錄時,瀏覽器首先會爲您的請求解析IP。所有應用程序引擎應用程序之間共享相同的IP地址,因此單獨使用IP地址無法確定您的應用程序。所以不,你不能只添加CNAME並期望appengine知道該怎麼做,你必須明確地告訴appengine。

說到明確。您可以爲自定義域使用通配符。也許這可以幫助。否則,我認爲客戶創建自己的轉發器的唯一選擇是使用幀。許多域名提供商提供的服務將包含一個非常簡單的html頁面,該頁面將以全寬度/高度框架顯示目標網站。我總是覺得框架解決方案是一種騙局,但它可能是您的案例中的最佳選擇。

+0

爲什麼我無法在AWS/Elastic Beanstalk中實現同樣的功能? (即有自定義域名cname實例地址xyz.elasticbeanstalk.com而不必告訴亞馬關於域) –

+0

我猜'xyz.elasticbeanstalk.com'是一個** A **或** AAAA ** DNS記錄(簡單地說:DNS名稱到IP映射),在這種情況下,您的beanstalk實例(可能是您的應用程序的負載均衡器)具有專用IP地址。所以你的應用程序被IP知道。當您爲** A **記錄創建** CNAME **時,它就像該** **記錄的別名,並且行爲與上述相同。如果beanstalk地址不是** A **記錄,請爲我提供一個實時DNS名稱,以便我可以分析它。 – konqi

相關問題