前段时间,我们的网络基础设施和 php curl 出现了问题。
我们的网络基础设施相当简单。
负载均衡器/防火墙 => 5 台服务器
当然,我们网站的域名设置为负载均衡器的 IP。但从其中一个服务器调用 curl 确实导致超时。似乎服务器无法调用它所服务的自己的域。所以我们必须通过 /etc/hosts 将域设置为服务器本身。
但是现在我们在负载均衡器前面实现了一个 Varnish,我们希望在页面发生更改时自动清除它。所以现在我们需要调用域名 www.example.com/url_to_purge。遗憾的是,由于 /etc/hosts 条目,这个调用被解析为服务器本身而不是 Varnish。
所以现在我想知道,您是否可以针对不同的服务以不同的方式解析域名:)
答案1
要回答这个问题,我所知道的唯一方法——但从未见过使用——是通过 RES_NAMESERVER 环境变量。
为了回答您的问题,我同意 David Schwartz 的观点,您需要删除 /etc/hosts 条目,因为这只会给您带来问题。改变您的方法,要么更改防火墙,要么直接转到后端主机。