新闻资讯  快讯  焦点  财经  政策  社会
互 联 网   电商  金融  数据  计算  技巧
生活百科  科技  职场  健康  法律  汽车
手机百科  知识  软件  修理  测评  微信
软件技术  应用  系统  图像  视频  经验
硬件技术  知识  技术  测评  选购  维修
网络技术  硬件  软件  设置  安全  技术
程序开发  语言  移动  数据  开源  百科
安全防护  资讯  黑客  木马  病毒  移动
站长技术  搜索  SEO  推广  媒体  移动
财经百科  股票  知识  理财  财务  金融
教育考试  育儿  小学  高考  考研  留学
您当前的位置:首页 > IT百科 > 站长技术 > 服务器

Nginx vs Apache两大web server比较

时间:2019-11-25 10:51:37  来源:  作者:

互联网从90年代开始席卷全球,现如今基本上所有业务都可以在互联网上完成,互联网已经成为我们生活中不可或缺的一部分。

那么互联网web协议是怎样的呢?可以概括为访问者从给定的Web站点请求文档,而DNS和IP系统将该请求转发到正确的计算机。这台托管请求的网页的计算机将把网页提供给访问者。

网页本质上是HTML文档。为了能够向访问者提供不同的网页,提供服务的机器需要一个服务器程序。 NginxApache就是这个提供服务的的软件程序,它们可以处理请求进行分析,然后将用户所需要的文档信息返回给访问者。

Nginx vs Apache两大web server比较

 

Nginx与Apache

Nginx vs Apache两大web server比较

 

Nginx和Apache都是非常​​流行的Web服务器。

  • Apache于1995年首次发布,Nginx于2004年发布。
  • 两者都被全球500强的大型公司使用。
  • Nginx的市场份额多年来一直在稳定增长。
  • 在某些情况下,Nginx在性能方面更具有竞争优势。

Apache

随着蒂姆伯纳斯李创建了html,之后Apache就占据着web服务器的主导地位。现在发行的linux服务器,无论是redhat还是ubuntu,apache都是默认自带的服务器,因此,很多人都是使用Apache来进行web开发的,毕竟人家操作系统已经给你提供好了。

apache受欢迎的一个点就是他的.htacess文件配置管理。

Apache使用.htaccess进行配置,它为处理传入请求的方式提供了很大的灵活性。不同的重定向规则,最大上传文件大小,URL重写,内存限制,目录保护,header头信息,cookie,查询字符串操作。

在服务器根目录中,目录树中的每个级别或目录都可以具有自己的.httaccess文件,并具有自己的配置。

对于共享主机提供商,这是一个梦想,因为他们可以在同一台计算机上为数百个用户提供一种配置其网站服务方式的方式,而不会影响其他网站。客户可以在受限的共享托管环境中配置许多详细信息,而无需接触全局服务器配置。

但是,这种灵活性是以性能为代价的:“无论您实际上是否使用它们,允许.htaccess文件都会导致性能下降!”

每次启用.htaccess文件时,Apache都必须从请求的URL或文件中遍历整个目录树,直到所有的更高级别,直到服务器的根目录,然后针对每个请求加载它们。

apache还有一个受欢迎的点是他的模块机制。

Apache便允许用户安装模块,然后根据需要启用/禁用它们。

apahce有很多好用的模块,比如压缩,加密,日志记录,重定向到更高级的内容,例如使用高级语法编辑请求和响应,正是有了这些模块,才让Apache处理请求更加多样化。

nginx

Nginx(也称为nginx或NGINX)是在2004年由俄罗斯开发人员Igor Sysoev首次公开发行的。

Nginx是专门为解决Apache Web服务器的性能限制而编写的。

Nginx vs Apache两大web server比较

 

Nginx发布后,主要用于提供静态文件,并在Apache安装之前用作负载平衡器或反向代理。 随着网络的发展以及对速度和硬件使用效率的高要求,越来越多的网站开始使用Nginx完全替换Apache,这也要归功于更成熟的软件。

现在市场上nginx的份额已经超过了Apache,很多大公司都开始采用nginx作为后端的web服务器,有些大公司甚至会修改nginx的部分代码来使用,比如我们熟知的Tengine。

nginx最初设计的时候就是模块化的思想,它的所有功能都是采用模块形式提供的,需要什么功能,只要对应加载相应的模块就可以。

nginx一直都在全速发展着,目前最新的web技术quic和http3也已经在最新版的nginx中提供实现了。

Nginx vs Apache两大web server比较

 

缓存

apahce和nginx都提供了缓存功能。apache有mod_cache模块,nginx也有fastcgi缓存。可以说没有缓存的web系统几乎不可能支撑如今高访问的情况。当然,说道缓存,最专业的还是Varnish HTTP。不过因为nginx可以和它完美地结合,所以这也是越来越多人拥抱nginx的一个理由。

apache和nginx处理请求方式

apache和nginx最大的不同在于它们处理请求的方式。

apache使用MPM(Multi-Processing-Modules)处理请求。

早期的mpm是prefork模块。在这种模式下,Apache会在每个请求中生成一个线程的新进程。该模块与mod_php一起使用,意味着Apache服务器在每个进程中都嵌入了一个PHP解释器,虽然可能这个请求只是请求css等静态文件。这是非常低效的。

在后来的几年中,Apache开发了多线程工作程序mpm,之后又开发了事件mpm。它们都减轻了许多Apache的性能问题。切换到php-fpm使得Apache仍然可以成为当今竞争性的解决方案,并且消除了.htaccess的使用,这让apache的处理效率提升了很多。

Nginx使用异步,非阻塞事件来处理请求。

简而言之,Apache对每个连接都使用进程(对于worker mpm,它使用线程)。随着流量的增加,它很快变得太昂贵了。

事件mpm在优化方面更进一步,但是一些测试表明它不能超过Nginx。尤其是当我们谈论静态文件时,Nginx的服务量是Apache的两倍。

Nginx理想情况下,每个CPU /内核只有一个工作进程。 Nginx工作进程的区别在于,每个工作进程可以处理每个工作进程成千上万的传入网络连接。无需为每个连接创建新的线程或进程。

Nginx vs Apache两大web server比较

 

总结

从目前的的发展眼光来看,nginx却是比apache的性能更优越,而且有越来越多的辅助插件构建在nginx上面,所以,如果你的web项目刚起步,建议您选择nginx来作为服务器,它可以给你提供更优秀的性能体验,当然,对于中小型项目来说,apahce依然也是不错的选择。特别是他的.htaccess确实非常好用。



Tags:Nginx   点击:()  评论:()
声明:本站部分内容来自互联网,内容观点仅代表作者本人,如有任何版权侵犯请与我们联系,我们将立即删除。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
1. 获取服务器证书文件下载好压缩包,找到Nginx文件夹中的证书。2. 安装服务器证书复制 server.key、server.cer 文件到 Nginx 安装目录下的 conf 目录。打开 Nginx 安装目录...【详细内容】
2020-03-19   Nginx  点击:(5)  评论:(0)  加入收藏
当我们有了一个 VPS 主机以后,为了不浪费 VPS 的强大资源(相比共享主机1000多个站点挤在一台机器上),往往有想让 VPS 做点什么的想法,银子不能白花啊:)。放置多个网站或者博客是...【详细内容】
2020-03-19   Nginx  点击:(12)  评论:(0)  加入收藏
VeryNginx 是一个基于openrestry(其实是基于nginx的lua扩展)的开发程序,实现了高级的防火墙,可以做访问统计和其他的一些防护功能。 VeryNginx 扩展了 Nginx 本身的功能,并提供了友好的 Web 交互界面。...【详细内容】
2020-03-19   Nginx  点击:(4)  评论:(0)  加入收藏
tomcat中的证书配置参数如下:<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"maxThreads="150" SSLEnabled="true" scheme="https" secure="t...【详细内容】
2020-03-17   Nginx  点击:(6)  评论:(0)  加入收藏
最近在部署自己的网站(racsky.com)时,使用了Nginx的服务反向代理,并且记录了过程与大家分享,相信这篇文章能够帮助到你。Nginx介绍Nginx是一款轻量级、高性能的反向代理Web服务器...【详细内容】
2020-03-17   Nginx  点击:(4)  评论:(0)  加入收藏
《深入理解Java虚拟机》但要想真的深入理解虚拟机一问肯定远远不够的,但是本文中分三部分对JVM有深入的解析。第1章 走近Java第2章 Java内存区域与内存溢出异常第3章 垃圾收...【详细内容】
2020-03-16   Nginx  点击:(6)  评论:(0)  加入收藏
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。本文从底层原理...【详细内容】
2020-03-15   Nginx  点击:(5)  评论:(0)  加入收藏
1. 需求将生产环境的流量拷贝到预上线环境或测试环境,这样做有很多好处,比如: 可以验证功能是否正常,以及服务的性能; 用真实有效的流量请求去验证,又不用造数据,不影响线上正常访...【详细内容】
2020-03-12   Nginx  点击:(2)  评论:(0)  加入收藏
#日志格式:&#39;$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"&#39;#统计...【详细内容】
2020-03-11   Nginx  点击:(7)  评论:(0)  加入收藏
运行工作结构原理:Nginx监听127.0.0.1:80和127.0.0.1:443Apache监听127.0.0.2:80和127.0.0.2:443HAProxy侦听公用IP地址的端口80和443。 它将HTTP请求从端口80重定向到端口44...【详细内容】
2020-03-08   Nginx  点击:(3)  评论:(0)  加入收藏
说明php有许多开源项目比较好像,在自己的机器上用docker搭建了很多。每个docker都是跑了个apache,每个docker里面都有apache。这样好像有点浪费资源,而平时都是用nginx,所以研究...【详细内容】
2020-03-06   Nginx  点击:(3)  评论:(0)  加入收藏
现在很多人都喜欢用nginx作为Web服务器部署网站,nginx配置起来也是相当的方便,如果你的网站是PHP语言开发的话,下面我们教大家简单的一招快速的隐藏网页的php后缀名,实现一种Pre...【详细内容】
2020-03-05   Nginx  点击:(14)  评论:(0)  加入收藏
VeryNginx 是一个基于openrestry(其实是基于nginx的lua扩展)的开发程序,实现了高级的防火墙,可以做访问统计和其他的一些防护功能。 VeryNginx 扩展了 Nginx 本身的功能,并提供了...【详细内容】
2020-03-01   Nginx  点击:(18)  评论:(0)  加入收藏
一、背景为了避免别人把未备案的域名解析到自己的服务器ip而导致服务器被断网,需要在nginx上设置禁止通过ip访问服务器,只能通过域名访问。 二、解决方法如果网站只配置了...【详细内容】
2020-03-01   Nginx  点击:(16)  评论:(0)  加入收藏
通过配置 Nginx 配置文件,实现正向代理、反向代理、负载均衡、Nginx 缓存、动静分离和高可用 Nginx 6种功能,并对 Nginx 的原理作进一步的解析。当需要使用 Nginx 配置文件时,...【详细内容】
2020-02-28   Nginx  点击:(9)  评论:(0)  加入收藏
环境准备 1.因为Nginx依赖于gcc的编译环境,所以,需要安装编译环境来使Nginx能够编译起来。命令:yum install gcc-c++显示完毕,表示安装完成:2.Nginx的http模块需要使用pcre来解析...【详细内容】
2020-02-27   Nginx  点击:(0)  评论:(0)  加入收藏
在我们的程序应用中经常会有一些配置文件或者是版本文件需要下载,此时如果把这些下载文件放到程序容器中,在文件太大导致下载时间太长或者大量并发下载时可能会影响程序的正常...【详细内容】
2020-02-25   Nginx  点击:(4)  评论:(0)  加入收藏
购买SSL证书要想使用https访问你的网址,首先得拥有颁发的SSL证书。我使用的是免费版,有效期为一年,过期后再重新申请。 申请SSL证书购买后,可在搜索框输入证书关键字进入到控...【详细内容】
2020-02-24   Nginx  点击:(8)  评论:(0)  加入收藏
此脚本是参考nmgxy/klionsec修改而来,重新添加了一些特征,只用来临时救急,还是推荐到ELK或者Splunk中分析Github:https://github.com/al0ne/nginx_log_check 功能 统计Top...【详细内容】
2020-02-24   Nginx  点击:(8)  评论:(0)  加入收藏
对于nginx的惊群问题,我们首先需要理解的是,在nginx启动过程中,master进程会监听配置文件中指定的各个端口,然后master进程就会调用fork()方法创建各个子进程,根据进程的工作原理...【详细内容】
2020-02-24   Nginx  点击:(8)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条