发布网友
共2个回答
懂视网
产品型号:Thinkpad E15
系统版本:centos8
区别:apache和nginx处理php文件的方式不一样。
1:Apache是通过libphp5.so这个模块来处理php文件
2:Nginx是通过php-fpm这个服务来处理php文件
Apache:
Nginx:
Apache的libphp5.so随着Apache服务器一起运行,而Nginx和php-fpm是各自运行,所以在运行过程中,Nginx和php-fpm都需要分别启动!
Nginx相对于Apache的优点:
轻量级,同样是 web 服务,比Apache 占用更少的内存及资源 ;高并发,Nginx 处理请求是异步非塞的,而Apache 则是阻塞型的,在高并发下Nginx 能保持低资源低消耗高性能;高度模块化的设计
编写模块相对简单;社区活跃,各种高性能模块出品迅速。
Apache 相对于Nginx 的优点:
rewrite,比Nginx 的rewrite强大;模块超多,基本想到的都可以找到;少bug ,Nginx 的bug 相对较多;超稳定
存在就是理由,一般来说,需要性能的web 服务,用Nginx 。如果不需要性能只求稳定,那就Apache。Nginx处理动态请求是弱项,一般动态请求要Apache去做,Nginx只适处理静态网页或反向代理。
总结:
1. Apache是通过libphp5.so这个模块来处理php文件
2. Nginx是通过php-fpm这个服务来处理php文件
3. Nginx处理动态请求是弱项,一般动态请求要Apache去做,Nginx只适处理静态网页或反向代理。
热心网友
为什么Nginx的性能要比Apache高得多?这得益于Nginx使用了最新的epoll(Linux 2.6内核)和kqueue(freebsd)网络I/O模型,而Apache则使用的是传统的select模型。目前Linux下能够承受高并发访问的Squid、Memcached都采用的是epoll网络I/O模型。
处理大量的连接的读写,Apache所采用的select网络I/O模型非常低效。下面用一个比喻来解析Apache采用的select模型和Nginx采用的epoll模型进行之间的区别:
假设你在大学读书,住的宿舍楼有很多间房间,你的朋友要来找你。select版宿管大妈就会带着你的朋友挨个房间去找,直到找到你为止。而epoll版宿管大妈会先记下每位同学的房间号,你的朋友来时,只需告诉你的朋友你住在哪个房间即可,不用亲自带着你的朋友满大楼找人。如果来了10000个人,都要找自己住这栋楼的同学时,select版和epoll版宿管大妈,谁的效率更高,不言自明。同理,在