nginx比apache处理静态文件速度快,但是nginx处理大量并发的php请求时,容易出现502错误,频率大概是多少

前端之家收集整理的这篇文章主要介绍了nginx比apache处理静态文件速度快,但是nginx处理大量并发的php请求时,容易出现502错误,频率大概是多少前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

首先要明确一点的是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进程在同一时刻只能响应一个用户请求。其他的用户请求都会被放到一个队列里面。

Nginx的性能要比Apache高得多?

<div class="cnblogs_code">

  这得益于Nginx使用了最新的epoll(Linux .6内核)和kqueue(freebsd)网络I/O模型,而Apache则使用的是传统的select模型。目前Linux下能够承受高并发访问的Squid、Memcached都采用的是epoll网络I/  处理大量的连接的读写,Apache所采用的select网络I/Nginx采用的epoll模型进行之间的区别:
  假设你在大学读书,住的宿舍楼有很多间房间,你的朋友要来找你。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万。

猜你在找的Nginx相关文章