apache、lighttpd、nginx的优缺点总结分析

2019年08月24日20:13:30 科技 1225

概述

今天主要对比下这几个主流的WEB服务器:lighttpd、apache、nginx


1、LIGHTTPD

1.1简述

​ Lighttpd 是一个德国人领导的开源Web服务器软件,具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。支持FastCGI, CGI, Auth,输出压缩(output compress), URL重写, Alias等重要功能。

apache、lighttpd、nginx的优缺点总结分析 - 天天要闻

它使用FastCGI方式运行PHP时,将使用很少的PHP进程响应很大的并发量。

1.2 优点

1)从稳定性上看,FastCGI是以独立的进程池运行来CGI,单独一个进程死掉,系统可以很轻易的丢弃,然后重新分配新的进程来运行逻辑;

2)从安全性上看, FastCGI和宿主的server完全独立, fastcgi怎么down也不会把server搞垮;

3)从性能上看, FastCGI把动态逻辑的处理从server中分离出来,大负荷的IO处理还是留给宿主server,这样宿主server可以一心一意作IO,对于一个普通的动态网页来说,逻辑处理可能只有一小部分, 大量的图片等静态IO处理完全不需要逻辑程序的参与(注1)

4)从扩展性上讲,FastCGI是一个中立的技术标准,完全可以支持任何语言写的处理程序(php,java,python…)

1.3 支持操作系统

  • Linux(binary packages for FC3,SuSE,Debian,Gentoo,PLD-Linux,OpenWRT)
  • BSD(FreeBSD,NetBSD,OpenBSD,MacOSX)
  • SGIIRIX
  • Windows(Cygwin)While it is known to compile cleanly on
  • Solaris
  • AIX

2、APACHE

2.1 简述

​ Apache是世界排名第一的web服务器,根据所作的调查,世界上百分之五十以上的web服务器在使用apache。

apache、lighttpd、nginx的优缺点总结分析 - 天天要闻

​ Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。世界上很多著名的网站如Amazon、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物。

2.2 优点

  • 几乎可以运行在所有的计算机平台上.
  • 支持最新的http/1.1协议
  • 简单而且强有力的基于文件的配置(httpd.conf).
  • 支持通用网关接口(cgi)
  • 支持虚拟主机.
  • 支持http认证.
  • 集成perl.
  • 集成的代理服务器
  • 可以通过web浏览器监视服务器的状态,可以自定义日志.
  • 支持服务器端包含命令(ssi).
  • 支持安全socket层(ssl).
  • 具有用户会话过程的跟踪能力.
  • 支持fastcgi
  • 支持java servlets

2.3 支持操作系统

  • Linux
  • Windows
  • 其他

3、NGINX

3.1简述

​ Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器。Nginx是由俄罗斯人 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

Nginx以事件驱动(epoll)的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡,有研究表明能支持高达 50,000个并发连接数。。其拥有匹配 Lighttpd的性能,同时还没有Lighttpd的内存泄漏问题,而且Lighttpd的mod_proxy也有一些问题并且很久没有更新。但是Nginx并不支持cgi方式运行,原因是可以减少因此带来的一些程序上的漏洞。所以必须使用FastCGI方式来执行PHP程序。

3.2优点

  • 处理静态文件,索引文件以及自动索引;
  • 打开文件描述符缓冲;
  • 无缓存的反向代理加速,简单的负载均衡和容错;
  • FastCGI,简单的负载均衡和容错;
  • 模块化的结构。包括gzipping, byte ranges, chunked responses,以及 SSI-filter等filter。如果由FastCGI或其它代理服务器处理单页中存在的多个SSI,则这项处理可以并行运行,而不需要相互等待。
  • Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率
  • Nginx具有很高的稳定性。其它HTTP服务器,当遇到访问的峰值,或者有人恶意发起慢速连接时,也很可能会导致服务器物理内存耗尽频繁交换,失去响应,只能重启服务器。例如当前apache一旦上到200个以上进程,web响应速度就明显非常缓慢了。而Nginx采取了分阶段资源分配技术,使得它的CPU与内存占用率非常低。nginx官方表示保持10,000个没有活动的连接,它只占2.5M内存,所以类似DOS这样的攻击对nginx来说基本上是毫无用处的。就稳定性而言,nginx比lighthttpd更胜一筹。
  • Nginx支持热部署。它的启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在不间断服务的情况下,对软件版本进行进行升级。

3.3操作系统

  • Linux
  • Windows(移植版本)
  • 其他

3.4 推荐架构

nginx作为最前端的web cache系统,通常的架构如下

apache、lighttpd、nginx的优缺点总结分析 - 天天要闻

这个结构的优点:

  1. 可以使用nginx前端进行诸多复杂的配置,这些配置从前在squid是没法做或者做起来比较麻烦的,比如针对目录的防盗链。
  2. nginx前端可以直接转发部分不需要缓存的请求。
  3. 因为nginx效率高于squid,所以某些情况下可以利用nginx的缓存来减轻squid压力。
  4. 可以实现url hash等分配策略
  5. 可以在最前端开启gzip压缩,这样后面的squid缓存的纯粹是无压缩文档,可以避免很多无谓的穿透。
  6. 因为nginx稳定性比较高,所以lvs不需要经常调整,通过nginx调整就可以。
  7. squid的文件打开数按默认的1024就绰绰有余,不过处理的请求可一个都不会少。
  8. 可以启用nginx的日志功能取代squid,这样做实时点击量统计时可以精确定位到url,不必要再用低效率的grep来过滤。
  9. 因为nginx的负载能力高于squid,所以在用lvs分流时可以不必分得特别均衡,出现单点故障的几率比较低。

nginx和squid配合搭建的web服务器前端系统架构:

apache、lighttpd、nginx的优缺点总结分析 - 天天要闻

前端的lvs和squid,按照安装方法,把epoll打开,配置文件照搬,基本上问题不多。

这个架构和app_squid架构的区别,也是关键点就是:加入了一级中层代理,中层代理的好处实在太多了:

  1. gzip压缩:压缩可以通过nginx做,这样,后台应用服务器不管是apache、resin、lighttpd甚至iis或其他古怪服务器,都不用考虑压缩的功能问题。
  2. 负载均衡和故障屏蔽:nginx可以作为负载均衡代理使用,并有故障屏蔽功能,这样,根据目录甚至一个正则表达式来制定负载均衡策略变成了小case。
  3. 方便的运维管理,在各种情况下可以灵活制订方案。
  4. 权限清晰:这台机器就是不写程序的维护人员负责,程序员一般不需要管理这台机器,这样假如出现故障,很容易能找到正确的人。对于应用服务器和数据库服务器,最好是从维护人员的视线中消失,我的目标是,这些服务只要能跑得起来就可以了,其它的事情全部可以在外部处理掉。

3种WEB服务器的比较

以下是针对这三个web服务器的一些比较:

apache、lighttpd、nginx的优缺点总结分析 - 天天要闻


从上面的分析比较建议的一种方案是:

  • Apache后台服务器(主要处理php及一些功能请求 如:中文url)
  • Nginx 前端服务器(利用它占用系统资源少得优势来处理静态页面大量请求)
  • Lighttpd图片服务器

后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

apache、lighttpd、nginx的优缺点总结分析 - 天天要闻

科技分类资讯推荐

平板电脑+AI?荣耀平板MagicPad3的AI到底能做些什么? - 天天要闻

平板电脑+AI?荣耀平板MagicPad3的AI到底能做些什么?

在今年上半年的MWC2025上,荣耀正式公布了阿尔法战略,宣布由手机制造商向AI终端生态公司所转型,在今年,我们已经看到了很多荣耀新品搭载了其最新的AI技术如影像技术AiMAGE、移动AI智能体YOYO等。与此同时,在公布阿尔法战略仅不到半年,荣耀正式更新了其旗舰平板电脑产品MagicPad3,并毫无例外的加入了诸多AI方面的功能,...
高效制作电子画册的优质软件推荐 - 天天要闻

高效制作电子画册的优质软件推荐

高效制作电子画册不仅能节省宝贵时间,还能提升作品的专业品质。作为设计师,我们需要依赖功能强大、操作便捷的工具来实现灵感的快速转化。今天为大家推荐几款在行业内口碑良好的电子画册制作软件,帮助您事半功倍。1.
马云现身比利时大广场低头专注看手机:还带了几个保镖 - 天天要闻

马云现身比利时大广场低头专注看手机:还带了几个保镖

近日,有网友发帖称在比利时布鲁塞尔大广场偶遇阿里巴巴创始人马云,并分享出几张偶遇照片。网友爆料称,马云还带了几个陪同保镖。据拍摄者发布图片显示,当天马云身着白衬衫,搭配同色系休闲裤,正坐在椅子上低头看着手机,神情专注。近年来,“退居二线”的马云不断在国外被网友偶遇,虽然他的生活方式变得如同“闲云野鹤...
蓝宝石推出 NiTRO+ 氮动 B850A / B650A WIFI 主板 - 天天要闻

蓝宝石推出 NiTRO+ 氮动 B850A / B650A WIFI 主板

IT之家 7 月 4 日消息,蓝宝石(蓝宝科技)现已推出 NiTRO+ 氮动 B850A WIFI 和 NiTRO+ 氮动 B650A WIFI 两款姊妹主板。这一对产品从介绍上来看没有明显功能差异,主要区别体现在左上方铝制马甲的装饰风格上。蓝宝石 NiTRO+ B850A / B650A WIFI 主板属于标准 ATX 板型,采用氮动系列家族化极客设计语言
消息称AMD Zen 6 架构引入多层 3D 堆叠缓存 - 天天要闻

消息称AMD Zen 6 架构引入多层 3D 堆叠缓存

IT之家 7 月 4 日消息,消息源 Moore's Law Is Dead(MLID)在最新一期视频中,曝料称 AMD 将变革 Zen 6 架构,通过多层 3D 堆叠缓存,相比较 Zen 5 架构,FP IPC (浮点运算每时钟指令数) 增幅可达到 6~8%。在 Zen 5 架构上,每个 3D V-Cache 层最高可以缓存 64MB,而在 Zen 6 架
格力朱磊:董明珠的影响力不来自于财富,来自于她所创造的财富 - 天天要闻

格力朱磊:董明珠的影响力不来自于财富,来自于她所创造的财富

IT之家 7 月 4 日消息,格力电器市场总监朱磊今日发布微博称,董明珠的影响力不来自于财富,来自于她所创造的财富。朱磊的微博配图显示:2012 年董明珠出任格力电器董事长至今格力电器累计纳税 1741.95 亿元累计向股民分红 1666.56 亿元格力电器创造 48 项国际领先技术专利超 13 万项发明专利授权量连续 8 年位列家电行业第...
开启第四次OTA 超26项升级优化助豹8不断进阶 - 天天要闻

开启第四次OTA 超26项升级优化助豹8不断进阶

6月30日,方程豹豹8迎来了第四次OTA升级,以16项新增功能、10项优化体验,在智能驾驶、AI座舱、动态控制三大领域完成了一次有态度的进化。此次升级,让豹8不仅拥有机械素质铸就的力量感,还能读懂生活的细节,让智能不止于功能堆砌,更是想你所