1

我在 App Engine 应用程序中注册了两个子域:

  • 服务-a.my-app.com
  • 服务-b.my-app.com

我已经在服务器上添加了所有记录(CNAME,A)。

我的 GAE 中有三项服务:

  • 默认
  • 服务-a
  • 服务-b

我希望每个子域都指向正确的服务。但是,每次我访问它们时,只使用默认服务。

旁注:GAE 正在为 laravel 5.4 和我的 dispatch.yaml 运行一个灵活的环境(位于默认服务如下:

dispatch:
-url: "service-a.my-app.com/*"
 service: service-a
-url: "service-b.my-app.com/*"
 service: service-b
4

3 回答 3

0

这对我有用。希望这可以帮助某人。

GAE 标准:我有一个 Angular 项目,它将为除一个子域“api”之外的任何子域加载。后端是用 Go 编写的,所有服务都在一个名为“api”的服务下

STEP1:设置本地环境

Angular 项目有以下 app.yaml

runtime: python27
api_version: 1
instance_class: F1
handlers:
- url: /
  static_files: default/index.html
  upload: default/index.html
- url: /
  static_dir: default 

我的 service.yaml 文件位于一个单独的目录中,并具有以下内容

runtime: go
api_version: go1
instance_class: F1
service: api
handlers:
- url: /.*
  script: _go_app
  secure: always

我的 dispatch.yaml 有以下内容

dispatch:
- url: "api.MYDOMAINNAME.com/*"
  service: api
//Add more subdomain : services mapping here

gcloud app deploy我使用命令部署了所有这些文件

第 2 步 - 在 GAE 中配置自定义域。

在 GAE 控制台中,转到Project Settings > Custom Domains

  1. 添加您的域
  2. 使用 Google 提供的一种方法验证您的域。
  3. 更新域服务提供商的 DNS 设置中的 CNAME、A 和 AAA 记录

第 3 步 - 配置子域

添加子域api.MYDOMAINNAME.com

在您的域服务提供商的设置中添加 CNAME。// 如果需要,添加更多子域

添加通配符子域*.MYDOMAINNAME.com

在您的域服务提供商的设置中添加 CNAME 以将 * 重定向到 google。

最后:

等待几分钟以应用设置。

现在您的应用程序将重定向MYDOMAINNAME.com, www.MYDOMAINNAME.com , *.MYDOMAINNAME.com到 Angular 代码

api.MYDOMAINNAME.com你的 api 服务

于 2019-01-10T07:05:58.827 回答
0

其实答案很简单:你只需要映射一个通配符子域,GAE 就会使用前缀对应的服务。

于 2017-08-30T04:02:12.073 回答
0

请注意,这dispatch.yaml是应用级别的配置,而不是服务级别的配置,偶尔更新包含它的服务不会自动更新应用级别的配置。

您应该使用特定的部署命令dispatch.yaml,从包含文件的目录执行:

  • gcloud app deploy dispatch.yaml如果您使用的是 Cloud SDK
  • appcfg.py update_dispatch .如果您仍在使用 GAE SDK

另请参阅dispatch.yaml 未更新

其他应用程序级别的.yaml配置文件也是如此,这可能是每个都有自己的更新/部署命令的原因之一(并且还允许独立于任何特定的应用程序服务部署它们。不知何故相关:为什么我需要在我可以在 GCP 中部署多个服务之前部署一个“默认”应用程序?

于 2017-08-29T03:38:23.603 回答