加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

nginx比apache处理静态文件速度快,但是nginx处理大量并发的php

发布时间:2020-12-13 21:42:51 所属栏目:Nginx 来源:网络整理
导读:首先要明确一点的是502是怎么出现的,为什么会出现502呢?一般而言,出现502的错误是因为php-cgi连接数不够导致的。举个例子:php-cgi开10个进程,前端发20个请求,每个请求的脚本都sleep100s,那么必然有至多10个请求会出现502错误。因此,出现502是因为php

首先要明确一点的是502是怎么出现的,为什么会出现502呢?一般而言,出现502的错误是因为php-cgi连接数不够导致的。举个例子:php-cgi开10个进程,前端发20个请求,每个请求的脚本都sleep100s,那么必然有至多10个请求会出现502错误。因此,出现502是因为php进程不够用了,和nginx没有多大关系。如果非要是找出这种502错误的比例,需要综合考虑:1后端php-cgi的进程数,2php-cgi对请求的处理时间,3nginx的并发量,要解决502也很容易,加大php-cgi的进程数。这里又三种方式:1增加nginx的upstream,其中upstream中为php-cgi的地址;2利用nginx作为,分支法解决并发量;3增加php-cgi的进程数,(这里会受到机器资源的限制,因此,也并不能无限增加)

php-cgi怎么开十个进程?求回答,谢谢啊
目前而言,php-cgi都是通过php-fpm去管理的。
php/etc/php-fpm.conf文件中,有设置php进程数目的选项。
   项设置可以参考php-fpm.conf中的说明。每个配置项都有详细的说明。

开启apache就会在任务管理器中看到fast-cgi线程了?一个fast-cgi线程是说在同一时刻只能处理一个客户端的网页请求吗?求回答

是的,一个fast-cgi进程在同一时刻只能响应一个用户请求。其他的用户请求都会被放到一个队列里面。

<div class="cnblogs_code">

  这得益于Nginx使用了最新的epoll(Linux .6内核)和kqueue(freebsd)网络I/O模型,而Apache则使用的是传统的select模型。目前Linux下能够承受高并发访问的Squid、Memcached都采用的是epoll网络I/  处理大量的连接的读写,Apache所采用的select网络I/  假设你在大学读书,住的宿舍楼有很多间房间,你的朋友要来找你。select版宿管大妈就会带着你的朋友挨个房间去找,直到找到你为止。而epoll版宿管大妈会先记下每位同学的房间号,你的朋友来时,只需告诉你的朋友你住在哪个房间即可,不用亲自带着你的朋友满大楼找人。如果来了10000个人,都要找自己住这栋楼的同学时,select版和epoll版宿管大妈,谁的效率更高,不言自明。同理,在高并发服务器中,轮询I/O是最耗时间的操作之一,select和epoll的性能谁的性能更高,同样十分明了。

2、为什么会出现502错误呢?

nginx出现502有很多原因,但大部分原因可以归结为资源数量不够用,也就是说后端php-fpm处理有问题,nginx将正确的客户端请求发给了后端的php-fpm进程,但是因为php-fpm进程的问题导致不能正确解析php代码,最终返回给了客户端502错误。优化php-fpm,优化代码,加大内存才是解决502的根源。

3、10000并发的话,nginx的表现怎么样?

2009年9月3日下午2:,金山游戏《剑侠情缘网络版叁》临时维护1小时,大量玩家上官网,论坛、评论、客服等动态应用Nginx服务器集群,每台服务器的Nginx活动连接数达到2.8万。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读