我在App Engine应用程序中注册了两个子域:
我已在服务器上添加了所有记录(CNAME,A)。
我的GAE中有三项服务:
我希望每个子域都指向正确的服务。但是,每次访问它们时,都只使用默认服务。
旁注: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
答案 0 :(得分:0)
请注意dispatch.yaml
是应用级配置,而非服务级配置,偶尔更新包含它的服务并不会自动更新应用级配置。
您应该使用dispatch.yaml
的特定部署命令,从包含文件的目录执行:
gcloud app deploy dispatch.yaml
如果您正在使用Cloud SDK appcfg.py update_dispatch .
如果您仍在使用GAE SDK 另见dispatch.yaml not getting updated。
对于其他应用级.yaml
配置文件也是如此,这可能是每个配置文件都有自己的更新/部署命令的原因之一(并且还允许独立于任何特定应用服务部署它们)。以某种方式相关:Why do I need to deploy a "default" app before I can deploy multiple services in GCP?
答案 1 :(得分:0)
实际上答案非常简单:您只需要映射一个通配符子域,GAE就可以使用与前缀对应的服务。
答案 2 :(得分:0)
这对我有用。希望这对某人有帮助。
GAE标准: 我有一个角度项目,它将为除一个子域“ 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
第3步-配置子域
添加子域api.MYDOMAINNAME.com
在域服务提供商的设置中添加CNAME。 //如果需要,添加更多子域
添加通配符子域*.MYDOMAINNAME.com
在域名服务提供商的设置中添加CNAME,以将*重定向到google。
最后:
等待几分钟以应用设置。
现在,您的应用程序会将MYDOMAINNAME.com, www.MYDOMAINNAME.com , *.MYDOMAINNAME.com
重定向到Angular代码
和
api.MYDOMAINNAME.com
到您的api服务