Apache和Nginx这两种常见的web服务器有什么不同?你知道吗?
发表于 2019-08-05 20:50
本文不包括IIS服务器,因为IIS只能在Windows上运行,而Apache和Nginx可以在各种平台上运行。
一、分析两大服务器:
1.Apache
Apache是世界上最大的web服务器。根据netcraft的一项调查,世界上超过50%的web服务器使用Apache。
1995年4月,Apache组发布了最早的Apache(版本0.6.2)。Apache group是一个完全在Internet上运行的非盈利组织,它决定应该在Apache web服务器的标准发行版中包含哪些内容。允许任何人修改bug,提供新特性并将其移植到新平台,以及其他工作。当新代码提交给Apache组时,该组将检查其内容,并对其进行测试,如果满意,则将代码集成到Apache的主发行版中。
Apache 的特性 :
可以在几乎所有的计算机平台上运行
支持最新的http/1.1协议
简单而强大的基于文件的配置(httpd.conf)
支持通用网关接口(cgi)
支持虚拟主机
支持http身份验证
集成 perl
集成代理服务器
可以通过web浏览器监视服务器的状态,还可以自定义日志
支持服务器端包含命令(ssi)
支持安全套接字层(ssl)
具有跟踪用户会话过程的能力
支持 fastcgi
支持 java servlets
2.Nginx
Nginx是一个非常轻量级的http服务器,由俄罗斯人编写。Nginx的发音是“engine X”,这是一个高性能的http和反向代理服务器,以及一个IMAP/POP3/SMTP代理服务器。Nginx由俄罗斯Igor Sysoev开发,是俄罗斯第二大访问站点Rambler.ru。
Nginx是用事件驱动的方式编写的,因此它具有非常好的性能,也是非常有效的反向代理和负载平衡。具有匹配lighttpd的性能。作为http服务器,Nginx具有以下基本特性:
处理静态文件、索引文件和自动索引;打开文件描述符缓冲区,无缓冲反向代理加速,简单的负载平衡和容错。快速cgi,负载平衡简单,容错能力强。模块结构包括:gzipping、字节范围、分块响应和筛选器(如si -filter)。如果fastcgi或其他代理服务器处理单个页面中的多个SSIs,则此进程可以并行运行,而无需彼此等待。
Nginx是为性能优化而开发的,性能是其最重要的考虑因素,实现非常高效。它支持内核轮询模型,能够承受高负载测试,报告显示支持多达50,000个并发连接。
Nginx非常稳定。其他http服务器,当遇到访问高峰时,或者当有人恶意地启动慢速连接时,也可能导致服务器的物理内存耗尽频繁的交换,失去响应,只重新启动服务器。例如,当Apache当前运行在200多个进程上时,web响应速度显然非常慢。Nginx采用了分阶段的资源分配技术,这使得它的CPU和内存使用率非常低。Nginx官方声明,它维护了10,000个不活跃的连接,这些连接只占内存的250万,所以像DDOS这样的攻击对Nginx来说基本上是无用的。就稳定性而言。
Nginx支持热部署。它启动起来特别容易,即使已经运行了几个月,它几乎可以7 * 24不间断地运行。您还可以不中断地升级软件版本。
二、两种 web 服务器的比较:
注:在相对较大的网站上,节省服务器的成本无疑是客观的。而一些小型网站往往只有很少的服务器。如果您使用传统的web服务器,比如Apache,它似乎能够存活下来。但也有明显的缺点:Apache在处理流量暴增(如爬行器或Digg效果)时很容易超载,因此Nginx是最合适的。
建议方案:
Apache后端服务器(主要处理php和一些功能请求,如:中文url) Nginx前端服务器(利用较少的系统资源来处理静态页面的大请求)Lighttpd image server
一般来说,随着Nginx功能的改进,他将成为未来web服务器的主流。
三 、性能测试 :
是否会测试两种软件的响应时间来响应动态页面和静态页面请求以及并发性
l静态页面 搜狐首页
Nginx
Apache
l动态页面内部社区首页
Nginx
Apache
lPHPINFO 函数页
Nginx
Apache 出现丢包
评论 (0人参与)
最新评论