我的问题是关于如何最好地将特定 URL 路由到静态页面,同时将其他所有内容路由到 wordpress.com 网站
我在 Google 域名上有一个域名,目前裸域名的 A 记录指向 wordpress.com 网站的 IP
我希望指向一个负载平衡器/反向代理,以便特定的 URL(在裸域上,而不是子域上)指向静态 HTML 页面(在 Google 存储桶中或任何最佳位置),而其他所有内容都路由到 wordpress.com IP。
我如何在 Google 云中最好地做到这一点?
答案1
URL 重定向会将您域名的访问者从一个 URL 重定向到另一个 URL。
您可以将后端服务和后端存储桶添加到 URL 映射中。
在部署 URL 映射之前,请务必验证 URL 映射配置,以确保映射按预期将请求路由到适当的后端。您可以通过向 URL 映射配置添加测试来做到这一点。
使用该gcloud compute url-maps validate
命令验证 URL 映射配置。
gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE
路径到 URL 映射配置文件:替换为包含 URL 映射配置的文件路径,以供验证。
验证对现有负载均衡器 URL 映射的更改
如果您现有的负载均衡器需要更改 URL 映射,则可以在生效之前测试这些配置更改。
- 将负载均衡器的现有 URL 映射导出到 YAML 文件。
gcloud compute url-maps export URL_MAP_NAME \
--destination PATH_TO_URL_MAP_CONFIG_FILE \
--global
- 使用新配置编辑 YAML 文件。例如,如果您要编辑外部 HTTP(S) 负载均衡器并将所有带有路径的请求发送
/video
到名为 的新后端服务video-backend-service
,则可以按如下方式将测试添加到 URL 映射配置中:
现有的 URL 映射配置只有一个默认值web-backend-service
:
kind: compute#urlMap
name: URL_MAP_NAME
defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service
编辑 URL 映射配置,添加路径匹配器并针对默认服务web-backend-service
和新video-backend-service
后端服务进行测试:
kind: compute#urlMap
name: URL_MAP_NAME
defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service
hostRules:
- hosts:
- '*'
pathMatcher: pathmap
pathMatchers:
- defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service
name: pathmap
pathRules:
- paths:
- /video
- /video/*
service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/video-backend-service
tests:
- description: Test routing to existing web service
host: foobar
path: /
service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service
- description: Test routing to new video service
host: foobar
path: /video
service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/video-backend-service
- 验证新配置。
gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE
如果所有测试成功通过,您应该会看到一条成功消息,例如:
Successfully validated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/URL_MAP_CONFIG_FILE_NAME
如果测试失败,则会出现错误消息。对 URL 映射配置文件进行必要的修复,然后尝试再次验证。
Error: Invalid value for field 'urlMap.tests': ''.
Test failure: Expect URL 'HOST/PATH' to map to service 'EXPECTED_BACKEND_SERVICE', but actually mapped to 'ACTUAL_BACKEND_SERVICE'.
- 一旦您知道新配置有效且不会影响现有设置,您就可以将其导入 URL 映射。请注意,此步骤还将使用新配置部署 URL 映射。
gcloud compute url-maps import URL_MAP_NAME \
--source PATH_TO_URL_MAP_CONFIG_FILE \
--global
重要提示:如果您最初在 Cloud Console 中设置了负载均衡器,则 URL 映射名称与负载均衡器的名称相同。