我正在尝试使用nginx的dynamic上行configuration,并找不到任何好的解决scheme来实现来自第三方源(如redis或mysql)的上行configuration。
其背后的思想是在主服务器中有一个单独的文件configuration,并且根据环境条件对各种应用服务器发出代理请求。 想想dynamic部署,在这些部署中,有X服务器在不同端口上运行Y工作站。 例如,我创build一个新的应用程序和部署。 应用程序pipe理器select一个服务器,然后推出一个工作(Ruby / PHP / Python),然后将状态为“up”的ip:port报告给中央数据库。 在这个时候,当我去给定的urlnginx应该代理所有的请求到指定的IP:端口上游。 整个事情跟Heroku的做法非常相似,除了这个概念validation不应该是生产准备,主要是为了内部的需要。
我发现最简单的解决scheme是使用基于ruby的DNS服务器的parsing器。 它的工作原理,nginx获得正确的IP地址,但唯一的问题是,你不能定义该IP的端口号。
第二个解决scheme(我还没有尝试过)是将其他代码作为代理服务器,也许写在Erlang中。 在这种情况下,我们需要使用一些东西来提供静态内容。
任何想法如何以更灵活和稳定的方式来实现?
PS一些研究选项:
这正是迈克尔汉普顿引用 – 使用Lua实现dynamic上游
http://sosedoff.com/2012/06/11/dynamic-nginx-upstreams-with-lua-and-redis.html
它看起来像以前的答案,丹更符合你的想法。
但是我写了一个基于node.js的反向代理,可以很容易地实现这个function: