Nginx和Apache区别有哪些?选LNMP还是LAMP?

2020-10-12技术锦集1159

目前的中小网站,在Linux系统上跑PHP+MySQL应该是首选的方式了,比如WordPress、Z-Blog、Discuz、PHPwind等。当然这些程序你也可以在Windows服务器上跑,不过性能嘛,肯定没有在Linux下强Linux+Nginx+Mysql+PHP(LNMP)和Linux+Apache+MySQL+PHP(LNMP)已经是绝配了,而且现在操作难度也不大,各种一键安装包网上都有,甚至你买一台VPS,提供商都已经为你准备好了相关的运行环境,非常方便!那么问题来了,建站初期,我是该选LNMP还是LAMP呢?

一、Nginx与Apache的区别

  1、二者最核心的区别在于Apache是同步多进程模型,一个连接对应一个进程;Nginx 是异步的,多个连接(万级别)可以对应一个进程。Nginx处理静态文件好, 耗费内存少. 但无疑Apache仍然是目前的主流, 有很多丰富的特性. 所以还需要搭配着来. 当然如果能确定Nginx就适合需求, 那么使用Nginx会是更经济的方式。

  2、Nginx的负载能力比Apache高很多。最新的服务器也改用Nginx了。而且Nginx改完配置能 -t 测试一下配置有没有问题。

  3、Apache重启的时候发现配置出错了,会很崩溃,改的时候都会非常小心翼翼现在看有好多集群站,前端Nginx抗并发,后端Apache集群,配合得也不错。

  4、Nginx处理动态请求是鸡肋,一般动态请求要Apache去做,Nginx只适合静态和反向。

  5、从经验来看,Nginx是很不错的前端服务器,负载性能很好,Nginx用webbench模拟10000个静态文件请求毫不吃力。Apache对php等语言的支持很好,此外Apache有强大的支持网络,发展时间相对Nginx更久,bug少但是Apache有先天不支持多核心处理负载鸡肋的缺点,建议使用Nginx做前端,后端用Apache。大型网站建议用Nginx自代的集群功能。

  6、大部分情况下Nginx都优于Apache,比如说静态文件处理、PHP-CGI的支持、反向代理功能、前端Cache、维持连接等。在Apache+PHP(prefork)模式下,如果PHP处理慢或者前端压力很大的情况下,很容易出现Apache 进程数飙升,从而拒绝服务的现象。

  7、Apache在处理动态有优势,Nginx并发性比较好,CPU内存占用低,如果ReWrite频繁,那还是Apache吧!

  8、一般来说,需要性能的web服务,用Nginx。如果不需要性能只求稳定,那就Apache吧。

二、Apache与Nginx优缺点比较

1、Nginx相对于Apache的优点

  轻量级,同样web服务,比Apache占用更少的内存及资源;抗并发,Nginx处理请求是异步非阻塞的,而Apache则是阻塞型的,在高并发下Nginx能保持低资源低消耗高性能;高度模块化的设计,编写模块相对简单;社区活跃,各种高性能模块出品迅速啊;Nginx本身就是一个反向代理服务器,Nginx支持7层负载均衡;Nginx可能会比Apache支持更高的并发,Nginx配置文件写得很简洁,正则配置让很多事情变得简单运行效率高,占用资源少,代理功能强大,很适合做前端响应服务器!

2、Apache相对于Nginx的优点

  Rewrite功能比Nginx的强大;模块超多,基本想到的都可以找到;Bug少,Nginx的Bug相对较多;超稳定,Aapch依然是大部分公司的首先,因为其成熟的技术和开发社区,以及非常不错的性能。

三、为什么现Nginx才是Web服务器首选

  作为Web服务器,相比Apache,Nginx使用更少的系统资源,支持更多的并发连接,体现更高的效率,这点使Nginx尤其受到虚拟主机提供商的欢迎。

  在高连接并发的情况下,Nginx是 Apache服务器不错的替代品。Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一. 能够支持高达50,000 个并发连接数的响应, 感谢Nginx为我们选择了epoll and kqueue作为开发模型。Nginx作为负载均衡服务器,既可以在内部直接支持Rails和PHP程序对外进行服务, 也可以支持作为HTTP代理服务器对外进行服务.

  Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比Perlbal要好很多。Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器), Last.fm 描述了成功并且美妙的使用经验:Nginx 是一个安装非常简单、配置文件非常简洁(还能够支持 perl 语法)、Bugs 非常少的服务器;启动特别容易, 并且几乎可以做到 7*24 不间断运行,即使运行数个月也不需要重新启动,你还能够不间断服务的情况下进行软件版本的升级。

  Nginx 配置简洁, Apache 复杂,Nginx 静态处理性能比Apache高3倍以上,Apache对PHP支持比较简单,Nginx需要配合其他后端用,Apache的组件比Nginx 多。

文章转自:https://www.hack520.com/470.html

同步发布:http://www.xinfocus.com/blog/post/Nginx-Apache-LNMP-LAMP.html

相关文章

华为手机如何设置底部导航栏及华为手机定时开关机设置?

华为手机如何设置底部导航栏及华为手机定时开关机设置?

华为手机底部导航栏和华为手机定时开关机设置,都是如何设置的呢?巧了,这2个功能目前设置界面基本是在一起的。打开华为手机,设置-智能辅助-导航栏/定时开关机...

 Z-Blog系统ASP版修改移动端样式( ZBlog系统wap修改)

Z-Blog系统ASP版修改移动端样式( ZBlog系统wap修改)

 Z-Blog系统ASP版修改移动端样式如何修改呢?比如需要加一点广告啥的(默认的修改pc端,移动端没什么变化),在哪里加呢?...

小米手机如何设置定时开关机小米手机MIUI系统定时开关机

小米手机如何设置定时开关机小米手机MIUI系统定时开关机

小米手机如何设置定时开关机?(MIUI系统定时开关机在哪里设置)小米手机MIUI系统定时开关机设置路径:电量和性能-省电优化(右上角)-定时开关机时间设置...

华为手机系统如何恢复出厂设置?华为手机深度彻底格式化

华为手机格式化(华为手机恢复出厂设置)有两种方法。一种是进入华为手机设置里面进行设置,另外一种是运用华为手机物理按键方式进行格式化。重点说一下第二种方法:运用华为手机物理按键方式进行设置,手机关机后,同时按下电源开关键和音量加大键不放,停留大概10S;等到出现手机的LOGO后就可以放开(如果没有,则再试一下),这里就会进入手机的recovery模式具体的操作步骤如下:第一种:进入【设置】页面进行格式化。1、首先打开手机,点击【设置】;2、点击【全部设置】,在页面中找到【备份和重置】点击;3、找到【恢复出厂设置】点击;4、如果不要手机里的全部内容,可勾选上【格式化内部存储空间】,然后再点击一下【...

Z-BlogPHP在百度云虚拟主机BCH里如何设置伪静态?

Z-BlogPHP在百度云虚拟主机BCH里如何设置伪静态?

   在百度云虚拟主机BCH正常安装Z-BlogPHP版本程序后,如何配置Z-BlogPHP伪静态呢?(ZBlog在nginx下伪静态设置)    第一步:登录后台,在后台“插件管理”里面打开“静态管理中心”(如果没有,则先在应用中心里面安装这个插件,是免费的),“配置页面”见图1*Z-BlogPHP伪静态样式除了默认效果还支持自定义,对应的参数如下:①文章的URL配置,可配置参数:{%host%} :网站地址,必须{%id%} :文章ID,文章ID和文章别名必须选择其中一个{%alias%} :文章别名,文章ID和文章别名必须选择其中一个{%year%...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。