擅长:python、mysql、java
<p>我不认为这是最好的办法。这种方法的问题在于,您在某种程度上将应用程序与基础设施紧密耦合。域和子域只是访问绑定到特定ip地址的计算机的一种更简单的方法。我会将域名归类为基础设施的一部分,而不是应用程序的一部分。如果您使用上述方法,那么您将在应用程序中引入一些有关基础结构的知识,从而降低应用程序的灵活性。如果你出于某种原因,在将来某个时候决定你的客户A应该使用clientA.mydomain.com?或者呢keyClientA.myotherdomain.com?或者你想让你的客户A使用他们的域名,也就是说。support.clientA.com?如果您的应用程序对域和基础设施设置一无所知,那么只需重新配置DNS服务器并获得可移植性就容易多了。在</p>
<p>如果我有这样的场景,我会有一些URL到租户id的映射,然后使用该租户id作为命名空间名称。通过这种方式,您可以轻松地将不同的URL映射到一个租户id,甚至可以将多个URL映射到同一个租户id,并在多个URL上公开同一个应用程序。您的映射可以存储在一个简单的配置文件中,甚至可以存储在全局命名空间中的AppEngine数据存储中。如果配置存储在AppEngine数据存储中,您可以使用应用程序的管理部分(甚至是另一个AppEngine模块),您可以使用它来实时更新配置。在</p>