如何在GKE的Ambassador API Gateway中配置通配符子域名映射?
正确配置Ambassador API Gateway通配符子域名路由
嘿,你的思路方向是对的,不过在Ambassador中使用通配符子域名时,需要注意通配符的位置规则——通配符*必须放在域名的最左侧段,而且格式要符合要求。我来给你梳理下正确的配置方式:
基础通配符子域名配置
如果要让所有*.mycompany.com的子域名都路由到my-service,正确的Mapping配置应该是这样的:
apiVersion: getambassador.io/v2 kind: Mapping metadata: name: my-service-wildcard spec: host: "*.mycompany.com" # 通配符放在最左侧,匹配所有子域名 prefix: / service: my-service
如果你只需要匹配*.app.mycompany.com这类二级子域名,那你的原配置格式本身是对的,但要确保DNS层面所有xxx.app.mycompany.com的域名都指向Ambassador的入口负载均衡IP,这样请求才能到达Ambassador进行路由。
额外注意事项
多Host匹配:如果需要同时匹配主域名(
mycompany.com)和所有子域名,你可以用逗号分隔多个Host值:spec: host: "mycompany.com,*.mycompany.com"优先级规则:Ambassador的Mapping是按匹配精度排序的——更具体的Host(比如
api.mycompany.com)会优先于通配符Host(*.mycompany.com)生效。如果之后你需要给某个特定子域名单独配置路由,不用担心冲突。HTTPS支持:如果你的服务用HTTPS,记得配置对应的通配符TLS证书,创建一个
TLSContext资源来绑定证书:apiVersion: getambassador.io/v2 kind: TLSContext metadata: name: my-wildcard-tls spec: hosts: ["*.mycompany.com"] secret: wildcard-mycompany-cert # 你的通配符证书Secret名称
这样配置后,所有符合通配符规则的子域名请求都会被正确路由到my-service啦。
内容的提问来源于stack exchange,提问作者Ha Doan
相关产品推荐
相关产品推荐

