2012-12-18 37 views
0

我搜索了,沒有找到這個問題之前問(它不是例如Many Custom Domains for AppEngine Instance相同),但請糾正我,如果我錯了。一個應用程序,AppEngine上的很多域名

我以前使用ASP.NET來構建一個Web應用程序,然後由幾家公司使用。我使用相同的代碼庫,並將其部署到同一個IIS網站,但每個公司都有自己的數據庫。收到請求時,檢查請求的主機頭並將其映射到內容數據庫(映射包含在共享配置數據庫中)。

這給了我一個應用程序來維護,修復和部署錯誤,而不同公司的實際數據完全分開在不同的數據庫中。很容易輸出一家公司的數據,我感到安全並不是偶然混合不同公司的數據。

我現在正在考慮用Java/GWT重寫這個webapp並將它發佈到AppEngine上。我的問題是:如何才能模仿AppEngine上的相同行爲?我應該每個公司有一個應用程序?這意味着我需要多次部署同一個應用程序,每個公司的網站一次。這也意味着每個應用程序至少需要花費最低9美元/月(我認爲AppEngine的免費限制是不夠的)。是否有可能創建一個應用程序,然後將其映射到幾個自定義域(就像我今天在.NET-app中那樣)?

正如我瞭解Google Apps的想法,管理員應該能夠使用AppEngine上的應用程序ID將雲應用程序添加到他/她的域中,然後開始使用它。是否支持爲已註冊我的應用的不同Google Apps域啓用數據分離?我可以通過編程方式檢查hostheader,並像我在.NET-app中一樣執行操作嗎?我不希望一個域的數據可用於其他域(事實上,這對我來說會非常糟糕:))。

回答

1

您可以使用namespaces在同一個應用程序實例中創建數據(又稱多租戶)的邏輯分離。

+0

有趣!所以我可以爲每個公司創建一個名稱空間,並且仍然擁有同一AppEngine-app中的所有內容。我將如何檢查傳入請求所針對的域? – joscarsson

+0

是的,您可以爲每個公司創建一個名稱空間。至於確定調用者的域,你應該使用你計劃使用的任何認證機制。 – jtahlborn

+0

我明白了,所有公司都會有一個共享的登錄頁面。持有用戶的「桌子」將由所有公司共享。當用戶登錄並驗證密碼時,我知道映射到該用戶的哪個名稱空間以及公司特定的數據可以顯示。我希望能夠將名稱空間映射到請求的URL,而不是登錄用戶(因此對somecompany.com和othercompany.com的請求會自動映射到不同的名稱空間)。但我想我可以忍受這一點。感謝你的回答,我想我可以從這裏繼續。 – joscarsson

相關問題