服务器nginx(众多语言中,为什么很多服务器都选择Nginx呢让大佬告诉你)
很多朋友对于服务器nginx和众多语言中,为什么很多服务器都选择Nginx呢让大佬告诉你不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
为什么要使用nginx服务器
这里做了些基准测试表明nginx打败了其它的轻量级的web服务器和代理服务器,同样也赢了相对不是那么轻量级的产品。
有人说这些基准测试是不准确的,因为在这样那样的环境下,做的比较不一致。我倾向同意基准测试只是告诉了我们其中一部分情况,你能做的是消除偏见(有人见过所有人都同意一个基准测试是公平的吗?我是没见过。)
不管怎样,这篇文章不是做基准测试来让人们争论(如果你喜欢,可以在Google上找到那样的文章),相反,下面的引述来自人们在现实世界中使用Nginx,在真实的负载下,服务于真正的应用和网站。
引述
我们投资的一些公司把web平台切换到Nginx后,可以显著的解决扩展问题。Nginx明显有效的实现了今天互联网上最大网站数量的增长。
– Thomas Gieselmann, BV Capital.
我
对今天运行网站的所有人的建议是,想打破性能限制就研究下能否使用Nginx。CloudFlare去年在一个相对较小的基础设施上已经扩展到可以处理每
月超过150亿的浏览量,很大程度上是因为Nginx的扩展性。我的经验表明切换到Nginx可以最大限度的利用现代的操作系统和现有的硬件资源。
– Matthew Prince, CloudFlare的联合创始人和CEO
Apache和Nginx都有能力提供每秒钟庞大的请求服务,但是随着并发数量的增加,Apache的性能开始下降,然而Nginx的性能几乎不会下降。
这里最好的一点是:因为Nginx是基于事件的,它不用为每个请求产生新的进程或线程,所以它的内存使用很低。在我的基准测试中,它的内存使用坐落在2.5M,Apache使用得更多。
– WebFaction
针
对Nginx v0.5.22 and Apache
v2.2.8我用ab(Apache的基准测试工具)跑了一个简单的测试。在测试过程中,我用vmstat和top检测系统。结果表明在提供静态内容
时,Nginx做得比Apache好。两个服务器都在并发数100时表现最佳。Apache使用4个工作进程(线程模式),30%的CPU和17MB的内
存,每秒钟处理6,500次请求。Nginx使用一个工作进程,15%的CPU,1MB内存,每秒钟处理11,500次请求。
– Linux Journal
Apache好比是微软Word,它有100万个选项,但是你只需要其中6个。Nginx就处理那6项任务,但处理其中5项任务时速度比Apache快50倍。
– Chris Lea
我现在使用Nginx在单一服务器上处理每天超过数千万(也就是每秒钟几百次)的反向代理HTTP请求。在负载高峰期,它消耗大约15MB的内存和10%的CPU,在我的特定配置下(FreeBSD 6)。
在同样的负载下,Apache表现大跌(在大约使用1000个进程后,上帝知道使用了多少内存),Pound表现大跌(如此多的线程,所有的线程栈会消耗400MB以上的内存),还有Lighttpd每小时泄露20MB以上内存(使用更多CPU,但不显著)。
– Bob Ippolito in the TurboGears mailing list, 2006-08-24
我们现在使用Nginx 0.6.29的upstream hash模块为我们需要的Varnish代理提供静态杂凑。我们通常处理8-9千次请求/秒,大约1.2Gb/秒数据在几台Nginx服务器间传输,而且还有很大的成长空间。
– WordPress.com
直到今天,我们一直使用Pound来解决Justin.tv的负载均衡。它一直使用20%的CPU,在高峰期会达到80%。在极高的负载下,它偶尔会崩溃。
我们只是切换到了Nginx,负载马上就降到了大约3%的CPU使用。我们的页面感觉更快了,尽管这可能是我的错觉。不仅它的配置文件格式容易理解和配置,而且还提供了完整的web服务器功能。我们再也没有遇到尖峰期了,而且我怀疑现有的性能会彻底打败Pound。
– Emmett Shear
我们使用Nginx作为主要的软件用于一个免费的托管平台,我已经在Nginx中开发了一个特定的模块用于banner潜入和统计计算,现在我们的中央服务器可以处理大约150-200Mbit/s高度分散的http流量(所有的文件都很小)。
我认为这是非常好的结果。因为在同样的服务器上面Apache不管怎么优化,甚至都不能处理60-80Mbit/s。
– Alexey Kovyrin
前
阵子,我们把我们的前端IMAP/POP代理从perdition切换到了nginx…,现在我们又使用nginx来做前端web代理服务器…。最终的结
果是,现在的每台前端代理服务器可以保持超过10,000并发(IMAP, POP, Web&
SMTP)连接(其中很多还是SSL),仅仅只使用了大约10%的CPU。
– FastMail.fm blog
最近,我们的静态内容服务器切换到了Nginx,无疑这是这么多年来我印象最深刻的一款web服务器。我们运行在一台配有8G内存的机器上,但是nginx进程只使用了可笑的1.4Mb。
– Philip Jacob
我们已经用nginx取代了Squid(反向代理)+Apache的方案,平均负载和CPU使用一样降低了一半。另外我们的基准测试表明新的配置每秒钟可以处理的请求数是旧配置的2-3倍。
– HowtoForge
我们用一些CMS系统( Wordpress, Drupal, Joomla, TYPO3等)做了基准测试,结果是Nginx提供网页的速度比Apache快了50%,同时nginx每秒钟处理的请求数(RPS)是Apache的177%。
众多语言中,为什么很多服务器都选择Nginx呢让大佬告诉你
Nginx是一个高性能的Web和反向代理服务器,它具有有很多非常优越的特性:
作为负载均衡服务器:Nginx既可以在内部直接支持Rails和PHP,也可以支持作为HTTP代
理服务器对外进行服务。Nginx用C编写,不论是系统资源开销还是CPU使用效率都比
Perlbal要好的多。
作为邮件代理服务器:Nginx同时也是-一个非常优秀的邮件代理服务器(最早开发这个产品的目的之-也是作为邮件代理服务器),Last.fm描述了成功并且美妙的使用经验。
Nginx安装非常的简单,配置文件非常简洁(还能够支持per语法),Bugs非常少的服务器:
Nginx启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启
动。你还能够在不间断服务的情况下进行软件版本的升级。
处理静态文件,索引文件以及自动索引;
反向代理加速(无缓存),简单的负载均衡和容错;
FastCGI,简单的负载均衡和容错;
模块化的结构。过滤器包括gzipping, byte ranges, chunked responses,以及SSiI-ilter。
在SSI过滤器中,到同一个proxy或者FastCGI的多个子请求并发处理;
SSL和TLSSNI支持;
使用外部HTTP认证服务器重定向用户到IMAP/POP3后端;
使用外部HTTP认证服务器认证用户后连接重定向到内部的SMTP后端;
认证方法:
POP3: POP3 USER/PASS, APOP, AUTH LOGIN PL AIN CRAM-MD5;
IMAP: IMAP LOGIN;
SMTP: AUTH LOGIN PLAIN CRAM-MD5;
SSL支持;
在IMAP和POP3模式下的STARTTLS和STLS支持;
FreeBSD 3.x, 4.x, 5.x, 6.x i386; FreeBSD 5.x, 6.x amd64;
Linux2.2, 2.4, 2.6 i386; Linux 2.6 amd64;
Solaris 8 i386; Solaris 9 i386 and sun4u; Solaris 10 i386;
MacOS X(10.4) PPC;
一个主进程和多个工作进程。工作进程是单线程的,且不需要特殊授权即可运行;
kqueue(FreeBSD 4.1+), epoll(Linux 2.6+), t signals(Linux 2.2.19+),/dev/poll(Solaris711/99+), select,以及poll支持;
kqueue支持的不同功能包括EV_ _CLEAR, EV_ DISABLE(临时禁止事件),NOTE_ _LOWAT, EV_ EOF,有效数据的数目,错误代码;
sendfile(FreeBSD 3.1+), sendfile(Linux 2.2+), sendfile64(Linux 2.4.21+),和sendfilev(Solaris 8 7/01+)支持;
输入过滤(FreeBSD 4.1+)以及TCP_ _DEFER_ ACCEPT(Linux2.4+)支持;
10,000非活动的HTTP keep-alive连接仅需要2.5M内存。
最小化的数据拷贝操作;
基于IP和名称的虚拟主机服务;
Memcached的GET接口;
支持keep-alive和管道连接;
灵活简单的配置;
重新配置和在线升级而无须中断客户的工作进程;
可定制的访问日志,日志写入缓存,以及快捷的日志回卷;
4xx-5xx错误代码重定向;
基于PCRE的rewrite重写模块;
基于客户端IP地址和HTTP基本认证的访问控制;
PUT, DELETE,和MKCOL方法;
支持FLV(Flash视频);
带宽限制;
内嵌的perl
通过aio. read() 1 aio _write()的套接字工作的实验模块,仅在FreeBSD下。
对线程的实验化支持,FreeBSD 4.x的实现基于rfork()
Nginx主要的英语站点是htp://sysoev.ru/en/
本人有自己整理大数据学习的功课,闲置着也无用了。
获取方式:
私信方式:
第一步,点击头像。
第二部:头像旁边有一个私信按钮,发送{学习资料}即可!
apache服务器和nginx服务器有什么区别
Apache与Nginx的优缺点比较
nginx相对于apache的优点:
轻量级,同样起web服务,比apache占用更少的内存及资源
抗并发,nginx处理请求是异步非阻塞的,而apache则是阻塞型的,在高并发下nginx能保持低资源低消耗高性能
高度模块化的设计,编写模块相对简单
社区活跃,各种高性能模块出品迅速啊
apache相对于nginx的优点:
rewrite,比nginx的rewrite强大
模块超多,基本想到的都可以找到
少bug,nginx的bug相对较多
超稳定
存在就是理由,一般来说,需要性能的web服务,用nginx。如果不需要性能只求稳定,那就apache吧。后者的各种功能模块实现得比前者,例如ssl的模块就比前者好,可配置项多。这里要注意一点,epoll(freebsd上是 kqueue)网络IO模型是nginx处理性能高的根本理由,但并不是所有的情况下都是epoll大获全胜的,如果本身提供静态服务的就只有寥寥几个文件,apache的select模型或许比epoll更高性能。当然,这只是根据网络IO模型的原理作的一个假设,真正的应用还是需要实测了再说的。
作为 Web服务器
相比 Apache,Nginx使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx尤其受到虚拟主机提供商的欢迎。在高连接并发的情况下,Nginx是Apache服务器不错的替代品: Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一.能够支持高达 50,000个并发连接数的响应,感谢Nginx为我们选择了 epoll and kqueue作为开发模型.
Nginx作为负载均衡服务器: Nginx既可以在内部直接支持 Rails和 PHP程序对外进行服务,也可以支持作为 HTTP代理服务器对外进行服务. Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal要好很多.
作为邮件代理服务器: Nginx同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器), Last.fm描述了成功并且美妙的使用经验.
Nginx是一个安装非常的简单,配置文件非常简洁(还能够支持perl语法), Bugs非常少的服务器: Nginx启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动.你还能够不间断服务的情况下进行软件版本的升级.
Nginx配置简洁, Apache复杂
Nginx静态处理性能比 Apache高 3倍以上
Apache对 PHP支持比较简单,Nginx需要配合其他后端用
Apache的组件比 Nginx多
现在 Nginx才是 Web服务器的首选
4、最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程
5、nginx处理静态文件好,耗费内存少.但无疑apache仍然是目前的主流,有很多丰富的特性.所以还需要搭配着来.当然如果能确定nginx就适合需求,那么使用nginx会是更经济的方式.
6、从个人过往的使用情况来看,nginx的负载能力比apache高很多。最新的服务器也改用nginx了。而且nginx改完配置能-t测试一下配置有没有问题,apache重启的时候发现配置出错了,会很崩溃,改的时候都会非常小心翼翼现在看有好多集群站,前端nginx抗并发,后端apache集群,配合的也不错。
7、nginx处理动态请求是鸡肋,一般动态请求要apache去做,nginx只适合静态和反向。
8、从我个人的经验来看,nginx是很不错的前端服务器,负载性能很好,在老奔上开nginx,用webbench模拟10000个静态文件请求毫不吃力。apache对php等语言的支持很好,此外apache有强大的支持网路,发展时间相对nginx更久,bug少但是apache有先天不支持多核心处理负载鸡肋的缺点,建议使用nginx做前端,後端用apache。大型网站建议用nginx自代的集群功能
9、Nginx优于apache的主要两点:1.Nginx本身就是一个反向代理服务器 2.Nginx支持7层负载均衡;其他的当然,Nginx可能会比apache支持更高的并发,但是根据NetCraft的统计,2011年4月的统计数据,Apache依然占有62.71%,而Nginx是7.35%,因此总得来说,Aapche依然是大部分公司的首先,因为其成熟的技术和开发社区已经也是非常不错的性能。
10、你对web server的需求决定你的选择。大部分情况下nginx都优于APACHE,比如说静态文件处理、PHP-CGI的支持、反向代理功能、前端Cache、维持连接等等。在Apache+PHP(prefork)模式下,如果PHP处理慢或者前端压力很大的情况下,很容易出现Apache进程数飙升,从而拒绝服务的现象。
11、可以看一下nginx lua模块:https://github.com/chaoslaw...apache比nginx多的模块,可直接用lua实现apache是最流行的,why?大多数人懒得更新到nginx或者学新事物
12、对于nginx,我喜欢它配置文件写的很简洁,正则配置让很多事情变得简单运行效率高,占用资源少,代理功能强大,很适合做前端响应服务器
13、Apache在处理动态有优势,Nginx并发性比较好,CPU内存占用低,如果rewrite频繁,那还是Apache吧
关于服务器nginx和众多语言中,为什么很多服务器都选择Nginx呢让大佬告诉你的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。