我在查找如何将多个域映射到GAE中的多个服务时遇到了很多麻烦。这是配置:
以下是app.yaml文件:
转到应用app.yaml
runtime: go
api_version: go1.9
handlers:
- url: /.*
script: _go_app
Angular app app.yaml
service: stage
runtime: python27
api_version: 1
threadsafe: true
skip_files:
- ^(?!dist) # Skip any files not in the dist folder
handlers:
# Routing for bundles to serve directly
- url: /((?:inline|main|polyfills|styles|vendor)\.[a-z0-9]+\.bundle\.js)
secure: always
redirect_http_response_code: 301
static_files: dist/\1
upload: dist/.*
# Routing for a prod styles.bundle.css to serve directly
- url: /(styles\.[a-z0-9]+\.bundle\.css)
secure: always
redirect_http_response_code: 301
static_files: dist/\1
upload: dist/.*
# Routing for typedoc, assets and favicon.ico to serve directly
- url: /((?:assets|docs)/.*|favicon\.ico)
secure: always
redirect_http_response_code: 301
static_files: dist/\1
upload: dist/.*
# Any other requests are routed to index.html for angular to handle so we don't need hash URLs
- url: /.*
secure: always
redirect_http_response_code: 301
static_files: dist/index.html
upload: dist/index\.html
http_headers:
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Frame-Options: DENY
我有一个域名,想要将Go API绑定到 api.domain.com ,将Angular应用绑定到 domain.com 。
转到 App Engine>设置>自定义域我设法为我的API添加域,它完全正常工作 但现在,我找不到将 domain.com 映射到我的Angular应用程序的方法。转到相同的设置不会让我选择将不同的服务映射到我的域。
感谢您的帮助,祝您度过愉快的一天!
答案 0 :(得分:6)
要映射子域,您可以使用dispatch.yaml文件。一个例子:
dispatch:
- url: "example.com/*"
service: default
- url: "api.example.com/*"
service: otherservice
然后运行$ gcloud app deploy dispatch.yaml
(它可以在任何目录中)。
在App Engine>下添加example.com后设置>默认服务的自定义域,您可以为其他服务添加子域api.example.com。稍后,您需要将新的子域DNS记录添加到域注册器,如控制台配置中所述。
答案 1 :(得分:0)
您想首先将裸露的domain.com
映射到您的应用。
然后选择添加其他域名,您就可以选择将api
(或任何其他)domain.com
子域名添加到特定服务。
请注意,您在2个服务中有一个冲突/重叠的处理程序模式:- url: /.*
,这不会起作用,因为GAE不知道将此类请求指向哪个服务,他们&# 39; ll最终都发送到同一个服务。您需要以非重叠方式对请求URL命名空间进行分区,并且您可能还需要dispatch.yaml
文件。有关详细信息,请参阅Mapping subdomain to a service in Google App Engine project。