可能在这里有人问过这种问题,但我找不到与我的问题真正匹配的问题。听说nginx的性能非常出色,但是Apache有更多文档,社区(阅读:专家)来获取帮助
现在我想知道的是,两台Web服务器在性能,配置的简易性,自定义级别等方面如何进行比较。在vps环境中作为REVERSE PROXY服务器?
我仍在权衡薄(红宝石Web服务器之一)的红宝石Web应用程序(不是ROR)的两者之间。
具体答案将不胜感激。一般的回答是不碰红宝石部分就可以了。我仍然对Web服务器管理不满意。
可能在这里有人问过这种问题,但我找不到与我的问题真正匹配的问题。听说nginx的性能非常出色,但是Apache有更多文档,社区(阅读:专家)来获取帮助
现在我想知道的是,两台Web服务器在性能,配置的简易性,自定义级别等方面如何进行比较。在vps环境中作为REVERSE PROXY服务器?
我仍在权衡薄(红宝石Web服务器之一)的红宝石Web应用程序(不是ROR)的两者之间。
具体答案将不胜感激。一般的回答是不碰红宝石部分就可以了。我仍然对Web服务器管理不满意。
Answers:
因为我同意webdestroyas回答的最重要点,所以我想在此发表评论,但是时间太长了。
您处于VPS环境中,这意味着您很可能内存不足。仅出于这个原因,您将需要Nginx,因为它的内存占用量小于Apache。
我也不同意所提到的一些论点。
易于配置: Nginx并不比Apache难。这不一样。如果您习惯使用Apache,那么更改总是会更加困难,这并不意味着配置样式本身会更加困难。一年多以前,我从Apache完全迁移到Nginx,今天我将很难配置Apache服务器,而我发现Nginx极其易于配置。
对于Ruby:
Nginx有乘客,但是,我通常将其描述为连接到Ruby的劣等方法。我不是Ruby程序员,所以我无法验证这一点,但我经常看到提到Unicorn和Thin是更好的选择。
结论:
Nginx成为反向代理。最初,它所做的只是提供静态文件并通过HTTP / 1.0向后端服务器反向代理。从那时起,就增加了fastcgi,负载平衡和各种其他功能,但其最初的设计目的是提供静态文件和反向代理。它确实做得很好。
相反,Apache是通用Web服务器。我毫不怀疑它可以很好地反向代理,但是它的设计没有最小的内存占用,因此它比Nginx需要更多的资源,这意味着我最初的VPS环境参数开始发挥作用。
性能:
NGinX。该服务器被认为是性能最好的Web服务器之一,许多不同的公司都在使用它(值得注意的是,MediaTemple)
易于配置:
Apache。Apache的配置非常简单,而且功能强大。Nginx功能强大,但可能很难理解,因为它看起来更像是一种编程语言,而不是配置文件。
自定义级别:
Apache。Apache有大量的mods和其他插件为其编写。尽管Nginx仍然为此提供了插件,但我认为Apache的功能远不止Nginx。
对于Ruby:
我知道Nginx可以用作Mongrel / webrick的强大负载平衡器。但是,Apache具有Phusion / Passenger,这使集成更好。
反向代理获胜者:
NGinX
Nginx是基于事件的,而apache是基于进程的。在高负载下,这将改变世界。Apache必须为每个连接派生或启动一个新线程,而nginx则不需要。这种差异主要表现在内存使用率上,但也表现在用户响应时间和其他性能指标上。Nginx可以在现代硬件上处理成千上万的同时 HTTP Keepalive连接。Apache将为每个连接使用1-2 MB的堆栈,因此进行数学计算后,您只能同时处理数百个甚至一千个连接,而无需开始交换。
在我们的环境中,我们在Apache和IIS的前面使用nginx作为负载平衡和缓存代理,并且不会更快乐。我们使用两个小巧的Nginx盒子代替一对非常昂贵的租赁F5设备,并且我们的站点在感觉和测量响应时间上都快得多。
大约两个星期前,我和你处于同样的困境。
给您一个非常简洁的答案:根据我的研究,nginx确实非常快速且对资源友好,但是它只被认为可以反向代理静态文件。其余的都是您必须配置或编写脚本的解决方案。
AFAIK nginx没有htaccess文件,因此,如果依赖于该功能,则必须找到解决方法。
AFAIK所需的所有东西都可以用,并且我看过教程。
我将在测试和性能分析设置中使用nginx。我有一个典型的LAMP应用程序。
我已经读到有人反向代理并从nginx提供静态文件,并将PHP之类的其他所有东西传递给正在运行的Apache实例。他们要求一个很好的权衡。我没有与此相关的性能数据,但您可能想知道。
在过去的几年中,我在各种不同环境的各种平台上使用Apache的mod_proxy遇到了严重的问题。它会不时地停止工作,唯一的解决方法似乎是重新启动Apache服务器。
就个人而言,我不是在问“ nginx vs Apache”,而是“ nginx vs lighttpd”,这是一个更艰难的要求!