反向代理混淆

目前我使用nginx + passenger来提供我的rails应用程序。 我一直在对反向代理进行一些研究,并且弹出一些名称(主要是鱿鱼,清漆和nginx)。

  1. 现在,如果我使用nginx作为我的Web服务器,我可以将它用作我的反向代理吗?

  2. 一般意义上,大多数站点使用nginx代理静态内容和apache / mongrel或类似的动态内容。 如果我想坚持使用我的nginx,乘客设置,当我引入反向代理时,我的架构会是什么样子? 它会是一个单独的盒子或nginx实例吗?

  3. 如果我引入像HAProxy这样的负载均衡器,它会是什么样子?

  4. 最后,这些选择在早期有多重要? 所以,如果我最终后悔做出选择(让我们说Varnish,因为它不能很好地与cookie等等),是否容易切换?

谢谢

反向代理是位于您的实际应用程序(rails)和客户端浏览器之间的服务器,并代表客户端检索文件。 配置反向代理所需要的只是在客户端和应用程序之间设置服务器; 由于您已经在使用nginx,因此您也可以将其用作反向代理。

1这里是SO上的链接: nginx是反向代理和Web服务器

2您可以在同一实例中设置反向代理。 如果它是不同的框或进程,则需要将动态请求从一个框传递到另一个框。

4如果您熟悉HTTP并配置这些服务器,我认为这很容易。 因为我错过了一个尾随斜线,我很难用apache