在同一台服务器上使用Apache和Nginx – 为什么?

在许多生产环境中,我经常看到人们同时使用Nginx和Apache – 通常configuration为监听端口80的Nginx,并将stream量“传递”给监听端口8080的Apache。

我已经尝试过谷歌,但是我还没有弄清楚,与仅在端口80上运行Apache并直接提供所有stream量相比,这种架构有什么好处?

有人可以帮忙吗?

根据我的经验,当Apache用作mod_phpmod_perl的应用程序服务器时,会使用这个设置。 在这种情况下,nginx用于SSL终止和提供静态内容(也可能作为caching),而所有的应用程序请求都传递给Apache。

在这个设置中,nginx可以用于SSL卸载 – 在我的经验中,这比Apache的apache更快。 它也可以用来负载平衡几个上游Apache服务器,但这通常意味着它是在一个单独的服务器上。

Apache可以通过添加一些模块来解决Webdav / SVN等一些问题。 NGinx无法做到这一点,然后代理请求到Apache。

在高负载下Nginx更快,更稳定,但不处理htaccess文件。 所以你使用Nginx作为Web服务器和Apache作为应用服务器。