Chr*_*ams 5 nginx varnish apache-2.2
我们目前通过 Apache 和 Apache 乘客为我们的大部分 Rails 和 LAMP 应用程序提供服务,但我们正在考虑添加 Nginx 或 Varnish 作为反向代理,以在一定程度上减少我们服务器上的负载。
我知道您可以同时使用 Varnish 和 Nginx,但鉴于在学习两者如何工作方面需要投入时间,并且我们希望在可能的情况下尽可能减少基础设施中“移动部件”的数量,我我试图找出使用以下方法的优缺点:
我知道 nginx 以非常快的速度着称,并且随着它变得越来越流行,它作为一个成熟的 http 服务器越来越突出,所以我可以看到投入一些时间来学习该服务器如何工作的论点,但 Varnish 仍然是一个未知数我。
如果 nCache 现在在 Nginx 中,我为什么要使用 Varnish?
谢谢
您预计使用 Edge Side Includes (ESI) 吗?如果是这样,则 Nginx ESI 模块已损坏并且存在一些未解决的错误。如果您使用 Varnish,输出不会被压缩,因此您在使用 Nginx 来压缩启用 ESI 的页面时会遇到一些困难。当我使用 Python 框架时,Rails 是类似的。
根据您当前的设置,您可以执行以下操作:
Nginx -> Apache -> Passenger -> Rails Varnish -> Apache -> Passenger -> Rails
两者都会出现在您现有系统的前面。使用 Nginx,您还可以让它直接访问静态文件,并允许它为这些文件提供服务,而无需通过 Apache 代理。使用 Location 指令,您可以分割部分网络空间并防止其必须通过代理。
但是,如果您想完全迁移到 Nginx,您的基础架构将变为:
nginx->乘客->rails(nginx->uwsgi->python)
如果你添加清漆,你最终会得到:
清漆 -> nginx -> 乘客 -> Rails
除非您使用 ESI,在这种情况下您最终会得到:
nginx->清漆->nginx->乘客->rails
在某些时候,从混合物中去除清漆变得非常有趣。然而,最近的 Varnish 版本仍然比 Nginx 的缓存更快,并且您对缓存的方式有很多控制权。虽然 Nginx 和 Varnish 都为您提供了相当多的控制权,但 Varnish 的 VCL 允许您编写 C 代码来完成两者都无法开箱即用的操作,而无需触及守护程序的源代码。这对你是否有用取决于你。
由于您目前正在使用 Apache,所以我更倾向于将 Varnish 放在前面,除非您打算迁移到 Nginx 并完全删除 Apache。在您的情况下,清漆更像是一种即插即用的解决方案。如果您决定将来要使用 ESI,则需要同时运行两者。
| 归档时间: |
|
| 查看次数: |
5170 次 |
| 最近记录: |