代理多个端口上的同一台服务器?

我忙于configuration一个驻留在一台服务器上的nginx反向代理,它将位于另一台服务器上的apache Web服务器前面,这个服务器将通过mod_wsgi服务于一个Django应用。

在几天前仔细阅读互联网的过程中,我看到一些nginxconfiguration示例,其中有一个服务器在上游指令中设置了多个端口。

所以,而不是这样做(我现在所做的或多或less)

upstream webserver { server backend1.com; } 

他有:

 upstream webserver { server backend1.com:8000; server backend1.com:8001; server backend1.com:8002; } 

显然,Apacheconfiguration为监听这三个端口。 (我认为在我看到的例子中,我不能再发现它,它是一个运行Rails的杂种后端,无论值多less钱)。

无论如何,我的问题是,这种方法有什么样的优点或缺点? 我知道任何一种方式的作品,我可以很容易地configuration任何选项,但我只是想知道是否有人可以阐明这是一个好/坏/不必要的configuration,为什么。

非常感谢您提供的任何智慧。

多后端的原因是Mongrel是一个单一的过程。 为了扩展,您需要多个进程,每个核心有一个或两个进程,并让代理提供一个入口点。 此外,您的代理很可能是multithreading的,并且能够pipe理用户连接,同时保持单个进程服务器的繁忙。

如果你的后端是Apache,假设你没有运行mpm-worker,那么它会产生多个subprocess来处理传入请求,所以不需要多进程。