nginx比apache处理静态文件速度快,但是nginx处理大量并发的php请求时,容易出现502错误,频率大概是多少
nginx比apache处理静态文件速度快,但是nginx处理大量并发的php请求时,容易出现502错误,频率大概是多少?比如,并发是10000,那出现502错误的比例是...
nginx比apache处理静态文件速度快,但是nginx处理大量并发的php请求时,容易出现502错误,频率大概是多少?比如,并发是10000,那出现502错误的比例是多少呀?
展开
展开全部
为什么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版宿管大妈,谁的效率更高,不言自明。同理,在高并发服务器中,轮询I/O是最耗时间的操作之一,select和epoll的性能谁的性能更高,同样十分明了。
为什么会出现502错误呢?
nginx出现502有很多原因,但大部分原因可以归结为资源数量不够用,也就是说后端php-fpm处理有问题,nginx将正确的客户端请求发给了后端的php-fpm进程,但是因为php-fpm进程的问题导致不能正确解析php代码,最终返回给了客户端502错误。优化php-fpm,优化代码,加大内存才是解决502的根源。
10000并发的话,nginx的表现怎么样?
2009年9月3日下午2:30,金山游戏《剑侠情缘网络版叁》临时维护1小时,大量玩家上官网,论坛、评论、客服等动态应用Nginx服务器集群,每台服务器的Nginx活动连接数达到2.8万。
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
展开全部
首先要明确一点的是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的进程数,(这里会受到机器资源的限制,因此,也并不能无限增加)
一般而言,出现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进程数目的选项。
例如
pm=dynamic
pm.max_children = 5
详细的选项设置可以参考php-fpm.conf中的说明。每个配置项都有详细的说明。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个也挺难说的 用ab测试几十万并发也没问题,但是老是存在php-fpm处理延迟。
最好还是多点静态的
最好还是多点静态的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询