为了账号安全,请及时绑定邮箱和手机立即绑定

请问一下nginx和apache分别是什么?

/ 猿问

请问一下nginx和apache分别是什么?

繁花不似锦 2019-10-29 10:06:41

nginx和apache分别是什么?


查看完整描述

4 回答

?
缥缈止盈

Nginx ("engine x") 是一个高性能的HTTP和反向代服务器,也是一个 IMAP/POP3/SMTP 服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。

nginx 相对 apache 的优点:

  • 轻量级,同样起web 服务,比apache 占用更少的内存及资源

  • 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能

  • 高度模块化的设计,编写模块相对简单

  • 社区活跃,各种高性能模块出品迅速啊

  • apache 相对nginx 的优点:

  • rewrite ,比nginx 的rewrite 强大

  • 模块超多,基本想到的都可以找到

  • 少bug ,nginx 的bug 相对较多


查看完整回答
反对 回复 2019-11-02
?
回首忆惘然

他们之间的关系大概是这样子:浏览器 《《-》》 nginx或者apache 《《-》》 tomcat或者php-fpm

nginx和apache两者的作用相同,都是常见webserver服务器,相互独立也可相符搭配,都是用于浏览器用户过来的http请求,然后把请求结果反应给浏览器。

apache是出现比较早的web server,90年代就有了,兼容性好文档全应用广泛。
nginx是后起之秀,2000年以后才有的,在web2.0年代性能远远超过apache,是时下比较流行的web server。

至于tomcat ,那是用来处理java程序的解释器。本身apache也好,nginx也好,都是无法直接处理java语言的,只能通过设置,当收到java文件请求时,传给后方tomcat处理,再把tomcat的反应回给浏览器。ps:上述中的php-fpm,是用来处理php程序的,作用跟tomcat差不多。

怎么选择搭配,这个就看各人的喜欢和开发需要了。我比较常用的就是nginx+php-fpm,apache+tomcat,nginx+tomcat。也试过nginx+apache+php-fpm+tomcat等复杂组合。

只要了解每个软件的功能和作用,就可以合理利用自由搭配。等等。希望对你有帮助。



查看完整回答
反对 回复 2019-11-02
?
DIEA

nginx相对于apache的区别是:
轻量级,同样起web 服务,比apache 占用更少的内存及资源
抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能
高度模块化的设计,编写模块相对简单
社区活跃,各种高性能模块出品迅速
apache 相对于nginx 的优点:
rewrite ,比nginx 的rewrite 强大
模块超多,基本想到的都可以找到
少bug ,nginx 的bug 相对较多
存在就是理由,一般来说,需要性能的web 服务,用nginx 。如果不需要性能只求稳定,那就apache 吧。后者的各种功能模块实现得比前者,例如ssl 的模块就比前者好,可配置项多。这里要注意一点,epoll(freebsd 上是 kqueue )网络IO 模型是nginx 处理性能高的根本理由,但并不是所有的情况下都是epoll 大获全胜的,如果本身提供静态服务的就只有寥寥几个文件,apache 的select 模型或许比epoll 更高性能。
当然,这只是根据网络IO 模型的原理作的一个假设,真正的应用还是需要实测了再说的。

查看完整回答
反对 回复 2019-11-02
?
炎炎设计

简单来看,ng的写法更容易看懂,而apache的rewrite指令看起来很复杂,除非你看过apache文档里面对几个rewrite指令的讲解,并且能理解apache对rewriterule的处理过程(可以参考这篇文章Apache Rewrite 理解)。 值得注意的两点: 1.写在apche的rewrite规则通常写在分布式配置文件.htaccess里面,那么apache在接受请求的时候就会在相应目录里面找这个文件,然后执行里面的指令。而在ng里面,似乎是出于效率的考虑,没有这种把配置文件分布在各处,临时加载的做法。 2.apache里面的rewrite规则中正则()的有些用法,比如RewriteRule反向引用,是apache里面特有的。

查看完整回答
反对 回复 2019-11-02
  • 4 回答
  • 0 关注
  • 77 浏览
我要回答

相关问题推荐

慕课专栏
更多

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信