0

我知道如何在谷歌应用引擎上将应用设置为 myapp.appspot.com,但我希望将 a.myapp.appspot.com 和 b.myall.appspot.com 用于同一应用的不同界面。正如谷歌指令所说,这是支持的:

appspot.com 域还支持 subdomain.your_app_id.appspot.com 形式的子域,其中 subdomain 可以是域名一部分中允许的任何字符串(不是 .)。以这种方式发送到任何子域的请求都会路由到您的应用程序。

来自https://developers.google.com/appengine/docs/python/runtime

但我无法弄清楚如何设置。有没有人在appspot上创建过子域?

4

2 回答 2

5

您无需执行任何操作即可进行设置。它只是工作。

也就是说,要实现不同的接口,您需要检测调用者使用的主机名。你可以把这个放进去HTTP_HOSTHTTP_HOST将具有全名(即“a.myapp.appspot.com”或“b.myapp.appspot.com”)。

更新:如果使用 HTTPS,则答案不再适用,来自通过 URL 的路由

注意: Google建议使用 HTTPS 协议向您的应用发送请求。Google 不会为在 appspot.com 上托管的双通配符域颁发 SSL 证书。因此,对于 HTTPS,您必须使用字符串“-dot-”而不是“.”。分隔子域,如下面的示例所示。您可以使用简单的“。” 使用您自己的自定义域或 HTTP 地址。

于 2012-04-20T02:37:01.207 回答
0

您可以利用以下SERVICE_ID-dot-概念:

https://SERVICE_ID-dot-PROJECT_ID.REGION_ID.r.appspot.com
https://myall.appspot.com/

https://a-dot-myall.appspot.com/
https://b-dot-myall.appspot.com/

在这里,带有 a-dot-myall.appspot.com 的请求将被路由到名为 的服务a
但是如果被命名的服务a不存在,那么请求将被路由到 myall.appspot.com,这被称为软路由。因此,即使该服务不存在,您也可以在您的应用程序中收到请求后,
使用 伪造任何 url并做出路由决定。myall.appspot.com实际上,我们已经server_namenginx.

软路由解释

于 2021-11-24T12:32:21.497 回答