新闻资讯  快讯  焦点  财经  政策  社会
互 联 网   电商  金融  数据  计算  技巧
生活百科  科技  职场  健康  法律  汽车
手机百科  知识  软件  修理  测评  微信
软件技术  应用  系统  图像  视频  经验
硬件技术  知识  技术  测评  选购  维修
网络技术  硬件  软件  设置  安全  技术
程序开发  语言  移动  数据  开源  百科
安全防护  资讯  黑客  木马  病毒  移动
站长技术  搜索  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   点击:()  评论:()
声明:本站部分内容来自互联网,内容观点仅代表作者本人,如有任何版权侵犯请与我们联系,我们将立即删除。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
nginx命令行 格式:nginx -s stop 帮助:-? -h 使用指定的配置文件:-c 指定配置指令:-g (用途是覆盖配置文件中的指令) 指定运行目录:-p 发送信号:-s(立刻停止服务:stop,优雅的停止服务:qu...【详细内容】
2019-11-27   Nginx  点击:(0)  评论:(0)  加入收藏
相关链接:Apache+WordPress部署SSL加密服务,全站开启https访问第一步、部署SSL加密服务准备工作1.在VPS已部署好LNMP一键安装包;2.申请SSL证书(百度免费SSL证书),我以阿里云提过...【详细内容】
2019-11-27   Nginx  点击:(0)  评论:(0)  加入收藏
前言接触到CDN的起因:我自己搭建的网站https://price.monitor4all.cn/网页打开的速度一直比较慢,经查证是我的网站有很多静态js大文件,通过浏览器读取这些js比较耗时间。最近...【详细内容】
2019-11-26   Nginx  点击:(2)  评论:(0)  加入收藏
模块配置结构基本上每个模块都会提供一些配置指令,以便于用户可以通过配置来控制该模块的行为。那么这些配置信息怎么存储呢?那就需要定义该模块的配置结构来进行存储。大家...【详细内容】
2019-11-26   Nginx  点击:(2)  评论:(0)  加入收藏
Nginx现在是非常火爆的web服务器,她使用更少的资源,支持更多的并发连接数,实现了linux的epoll模型。Nginx采用的是多进程单线程和多路IO复用模型。使用了I/O多路复用技术的Ng...【详细内容】
2019-11-26   Nginx  点击:(3)  评论:(0)  加入收藏
互联网从90年代开始席卷全球,现如今基本上所有业务都可以在互联网上完成,互联网已经成为我们生活中不可或缺的一部分。那么互联网web协议是怎样的呢?可以概括为访问者从给定的W...【详细内容】
2019-11-25   Nginx  点击:(3)  评论:(0)  加入收藏
简介今天要给大家分享的事如何配置nginx记录access log和error log到systemd journal日志中去需求在前面的文章我们讲道,我们可以不需要容器化,直接部署nginx到裸服务器,那么传...【详细内容】
2019-11-22   Nginx  点击:(5)  评论:(0)  加入收藏
Nginx 是一个免费、开源、高性能、可伸缩、可靠、功能全面且流行的 HTTP和反向代理服务器,一个邮件代理服务器,以及通用的 TCP/UDP 代理服务器。Nginx 的配置很简单,资源消耗低...【详细内容】
2019-11-21   Nginx  点击:(2)  评论:(0)  加入收藏
前面的话如果服务器只需要放置一个网站程序,解析网站到服务器的网站,网站程序监听80端口就可以了。如果服务器有很多应用,借助nginx不仅可以实现端口的代理,还可以实现负载均衡...【详细内容】
2019-11-19   Nginx  点击:(6)  评论:(0)  加入收藏
1、实现效果打开浏览器,在地址栏输入www.123.com,显示linux系统中tomcat的主页面。具体操作详解:进入到nginx安装目录的配置文件中下:vim /usr/local/nginx/conf/nginx.conf编辑...【详细内容】
2019-11-18   Nginx  点击:(8)  评论:(0)  加入收藏
Nginx 现在几乎是众多大型网站的必用技术,大家应该都知道 Nginx 被 F5 收购的大事件,章亦春也在专心维护 OpenResty 项目构建和谐家园,无论你选择 Nginx 还是 OpenResty,都需要...【详细内容】
2019-11-14   Nginx  点击:(5)  评论:(0)  加入收藏
搭建思路:1. 采用nginx+nginx-rtmp-module搭建rtmp服务端2. ffmpeg作为推送端,将视频流转为adobe flash flv格式封装后推送到nginx rtmp服务Nginx服务端:nginx下载: nginx-rtmp-...【详细内容】
2019-11-11   Nginx  点击:(11)  评论:(0)  加入收藏
两种实现方式分别是基于Ehcache和Redis的session管理策略。大家都知道服务器资源有限的,但是客户端来的请求是无限的(不排除恶意攻击), 为了保证大部分的请求能够正常响应,不...【详细内容】
2019-11-07   Nginx  点击:(14)  评论:(0)  加入收藏
Location语法location [=|~|~*|^~] /uri/ { … }= 开头表示精确匹配^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/sta...【详细内容】
2019-11-07   Nginx  点击:(4)  评论:(0)  加入收藏
Nginx 同 Apache 一样都是一种 Web 服务器。基于 REST 架构风格,以统一资源描述符(Uniform Resources Identifier)URI 或者统一资源定位符(Uniform Resources Locator)URL 作为沟通依据,通过 HTTP 协议提供各种网络服务。...【详细内容】
2019-11-06   Nginx  点击:(7)  评论:(0)  加入收藏
这篇文章给大家介绍的内容是关于 Nginx作为静态资源web服务并进行静态资源压缩,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。...【详细内容】
2019-11-04   Nginx  点击:(7)  评论:(0)  加入收藏
关于Nginx部署、配置的文章网上已经发布过很多,包括我自己也私藏了不少还发布过两篇: 后端必备 Nginx 配置 前端必备 Nginx 配置整理出来为的就是需要的时候,复制、粘贴就能使...【详细内容】
2019-11-04   Nginx  点击:(6)  评论:(0)  加入收藏
HTTP 协议的 Cache -Control 指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置 Cache-Control 并不会影响另一个消息处理过程中的缓存处理过程。请求时的缓存指令...【详细内容】
2019-11-01   Nginx  点击:(6)  评论:(0)  加入收藏
Nginx从2004年10月发布至今,已经趋于成熟和完善。在连接高并发的情况下,Nginx是Apache服务不错的替代品,作为一款分布式轻量级的中间件Nginx也是存在大量的漏洞的。下面我们针...【详细内容】
2019-10-30   Nginx  点击:(12)  评论:(0)  加入收藏
一、前言1.1 正向代理功能比较简单,但是原生nginx不支持https代理,如果访问https网站,会报错。# nginx代理不支持http CONNECT方法:curl: (56) Received HTTP code 400 from pro...【详细内容】
2019-10-30   Nginx  点击:(68)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条