传统上,我默认是将网站部署在apache下。虽然我听说过有关NGinX的事情,但我想知道在什么条件下它会更好。除了apache和Nginx之外,网络服务器还有哪些其他选择,它们还有什么好处?

评论

非常广泛的问题。为了回答“有价值”的问题,我认为您需要对上下文进行更多的解释。

#1 楼

是的。

其中一台Web服务器过去每隔几个小时就会出现大量负载高峰。在查看日志后,我发现负载高峰发生的时间,那里有很多人在看画廊。

因此,我将99%的静态内容从Apache卸载到了Nginx。 apache被留下来服务所有的php。我的Web服务器上的负载下降到一个很小的数字,并且没有更高的负载峰值。

如果您希望从服务器中获得更多收益,那么肯定有一些轻型服务器可以满足所有需求静态内容。

评论


为什么地球上的负载会有所不同?

–删除
2010年7月9日,0:22

+1,我前一段时间也做过,效果非常好。

–theotherreceive
2010年7月9日,0:24

@Kinopkio nginx不需要每个连接都具有进程/线程,因此它可以使用比apache更少的资源为相同数量的客户端提供服务。

–theotherreceive
2010年7月9日,0:25

好的,抱歉,我在考虑带宽而不是服务器负载。

–删除
2010年7月9日,0:42

#2 楼

Apache可能会有点沉重,并且在高负载下可能会崩溃。可以使用重量更轻的服务器,包括nginx,lighttpd和切诺基。

这些轻量级的选项可以设置为快速提供静态文件,并将动态服务器端工作委托给Apache。

#3 楼

有一堆Web服务器在那里。我期望取决于您想要的用法。 Apache将满足人们的大部分需求,众所周知,它性能良好,更新良好,并且可以在几乎任何硬件和操作系统组合上运行。

要比较Web服务器,请查看Web服务器软件比较。

#4 楼

Netcraft跟踪Web服务器的市场份额。据他们说,IIS以26.03%的份额紧随Apache之后(截至2010年7月),位居第二。这是根据对205+百万个站点的调查得出的。

如果您今天使用的是Apache,则该链接具有为什么您应该检出IIS7的原因。

评论


Linux上IIS7的问题是....它不运行运行..它不运行运行...

– Tim Post
2010年7月19日在6:13



据我对问题的理解,没有什么可以说OP要求特定操作系统的Web服务器...或者我缺少什么?我以为他也可以选择Windows。

–mvark
10年7月19日在10:54



#5 楼

这实际上取决于您在做什么。

如果您只有静态内容,则不需要Apache。 nginx或lighttpd会很好地为您服务。

如果您将静态和动态混合在一起(很好,Perl或PHP),但是站点很小,您仍然可以选择其中一种选择FastCGI,或者只是将其扔到Apache中。

如果您将Ruby和静态内容一起提供,那么Apache中的mod_passenger应该可以很好地为您服务,而nginx / lighttpd / etc可以提供您的静态内容。

对于Python(我的专业领域),如果需要,可以让Apache使用mod_python,但要为速度慢做准备。 mod_wsgi更好,但是仍然有Apache的开销,如果您有很多繁重的动态流量,这很好。 Apache在大多数情况下都是举重工。

如果您没有大量的流量,请研究gunicornuWSGI等新系统或一体式服务器切诺基来处理您的蟒蛇。切诺基也可以处理静态文件。剩下的,您仍然要使用nginx / lighttpd来提供静态内容。

Java和其他语言,我都不知道。

关于但是,使用nginx可以实现令人惊奇的配置。因此,请设置几个具有不同子域的静态服务器,每个静态服务器分别用于CSS,图像和JS。这样一来,您可以避免每个域一次限制2个文件。设置几个服务器,然后在它们前面设置一个nginx代理/负载均衡器,以确保所有静态内容始终可用。

基本,是的,不仅仅考虑Apache!