2014-02-14 65 views
8

假設我有一個Google App Engine應用程序,其中有幾個模塊有幾個版本。我可以將自定義域名映射到應用程序特定模塊的特定版本嗎?自定義域映射到Google App引擎模塊或版本

例如:

http://www.example.com應該被映射到http://module1-dot-app1.appspot.com

+1

https://developers.google.com/appengine/docs/domain –

+1

已閱讀該文章,但它不回答我的問題 – Korneel

+2

通配符域映射至少可以部分解決問題,因爲它允許映射應用程序要提供的任何子域。所以這將支持module1.example.com工作 - 只要「module1」存在於應用程序中。然而,我還沒有找到解決方案,如何將一個不同的子域名映射到特定的模塊(如www - > module1.example.com,api - > module2.example.com),如同啓用了通配符映射,任何非 - 現有的子域名(在您的appspot上下文中)將由DEFAULT模塊提供服務。 –

回答

11

1。測繪模塊自定義域

假設您是admin域example.com,你想將子域www.example.com映射到模塊web模塊在您的應用程序中myapp.appspot.com

www.example.com - >webmodule.myapp.appspot.com

你能做什麼打算admin.google.com,然後在App Engine應用部分配置您的應用程序,使其映射到網址www.example.com。當然,請按照配置域名的說明進行操作(您應該使用ALIAS www和HOST ghs.googlehosted.com在DNS配置中添加CNAME條目)。

一旦你做到了這一點,網址www.example.com鏈接到您的應用程序默認模塊。對於重定向到webmodule需要配置應用程序內部的路由與派遣文件,報告如下:

https://developers.google.com/appengine/docs/python/modules/routing

你的情況,你需要的是這樣的事情(這是從dispatch.yaml文件對於Python應用程序):

dispatch: 

    - url: "www.example.com/*" 
     module: webmodule 

2.Mapping一個版本,以自定義域

關於版本,看起來你不能將url映射到特定的模塊版本。你可能做的是將包含版本的url映射到特定的模塊,但這可能有點令人困惑。

0

正如thetonrifles已經指出的那樣,您必須使用dispatch.yaml文件,該文件位於默認模塊中。

但是,我在使用安全域/子域時也遇到了一些問題。如果您已經爲自定義域上傳了SSL證書,並且事實上添加了自定義子域名,則需要返回到SSL證書部分並啓用您添加的子域名,否則它們將保持空白。