我有一个域,其DNS条目正在使用AWS Route53进行管理。
我在数据中心有30个服务器,只有私有IP,这些服务器上托管的站点使用具有公共IP的nginx代理服务器加载。
为此,我创建了一条A记录(比如* .abc.com一个IPofproxy),然后我在代理服务器上添加了一些重定向规则来加载相应的站点。
代理服务器上的重定向规则如下:
1.abc.com重定向到1.1.1.1
2.abc.com重定向到2.2.2.2
3.abc.com重定向到3.3.3.3等
但现在我遇到了CNAME的问题,
问题是, 我创建了一些CNAME记录,如:
abc.abc.com CNAME 1.abc.com
def.abc.com CNAME 2.abc.com
fgh.abc.com CNAME 3.abc.com等
然后我尝试访问所有上述域名(abc.abc.com,def.abc.com等),但所有站点只指向一个服务器,这是第一个重定向规则服务器。
我是nginx的新手,如果有人帮我解决这个问题会很棒。
答案 0 :(得分:1)
如果我正确理解您的配置,您遇到的问题与Route 53或Nginx无关。
相反,它与网络浏览器如何与DNS条目交互有关。您对任何反向代理服务器都存在此问题。
您必须单独配置代理中的每个CNAME条目,因为浏览器并不关心CNAME条目 - 每个请求发送的Host:
标头是浏览器的主机名以开头,而不是浏览器在遍历任何CNAME后最终得到的主机名。
a.example.com IN A 203.0.113.1
b.example.com IN CNAME a.example.com.
b.example.com
的请求将由代理根据b.example.com
和不的规则由a.example.com
的规则路由,因为CNAME会不要更改浏览器的Host:
标头,这是代理几乎肯定用于其路由决策的内容。
如果您需要b.example.com
的请求,则必须在代理中配置,而不仅仅在DNS中配置。