external domains大家可能不经常使用,这个是k8s 提供的CNAME能力,比如下面通过外部域名的功能,为my-service 的域名增加一个 my.database.example.com的CNAME,这样当我们在容器里面访问 my-service域名的时候,域名解析到CNAME my.database.example.com,从而将请求转发到 my.database.example.com 。
但外部域名有个小问题,就是它只是重定向域名,并不会修改 HTTP header,这就导致一个问题:请求url 里面域名和header中的域名不一致。而ingress 大部分都是HTTP 请求。比如下面service 的定义。
当通过 my-sample.com 请求ingress的时候,ingress转发请求的时候, HTTP HOST header 还是my-sample.com,但上面设置的外部域名是 example.com,这就导致不一致了,nginx无法转发流量。
但我们还可以通过 nginx.ingress.kubernetes.io/upstream-vhost 这个annotation修改我们的请求header,如上面例子,我们将请求header的HOST 修改成 example.com 就可以成功请求了。
申请国外域名很简单,如果你要申请一些当地国家的域名你首先考虑清楚需不需要注册国家域名后缀,比如:英国域名.uk、美国域名.us、日本域名.jp、俄罗斯域名.ru、香港域名.hk等,或者一些通用的国际顶级域名注册后缀如.com、.ne、.org、.biz、.top等,前提得选好域名注册商,例如选择了Gname新加坡的专业国际域名注册商,前往官网选择你要注册的域名及后缀,提交支付就可以了。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)