2017-01-14 45 views
1

我有不同版本的后端服务,并希望nginx像一个“交通警察”,发送用户到当前在线现场后端服务。每次我想将用户重定向到不同的后端服务时,是否有简单的方法可以在不更改nginx配置的情况下执行此操作?Nginx反向代理与交替的现场后端服务

nginx backend service direction

在这个例子中,我要关机现场后端服务和直接用户的测试后端服务。然后,反之亦然。我称之为合乎逻辑的“交通警察”,它知道指引用户使用哪个后端服务。

我不认为使用upstream将所有后端服务添加到proxy_pass负载平衡将工作。我认为负载平衡不会给我我想要的。

我也不希望用户root更新机器上的/etc/hosts文件,这是因为多个程序同时编辑/etc/hosts的安全性和碰撞问题。

我正在考虑在nginx中做proxy_pass http://live-backend.localhost并使用本地DNS服务器来管理内部IP地址live-backend-localhost,我可以随时更改(重新指向另一个后端IP)。但是,nginx实际上是否会在每个请求中查询DNS服务器,或者一旦永久缓存IP就会解析它?

我在想这个吗?在nginx中有没有简单的方法来做到这一点?

回答

1

您可以使用server指令的备份参数,以便测试服务器只在活动服务器关闭时使用。

NGINX在启动时查询DNS并对其进行缓存,因此您仍然需要重新加载它才能更新。