最近PPC经常出现502错误,网页经常无法打开,所以本人决定对Nginx进行深入折腾!
Nginx本身没有挂掉,否则不会出现502的错误信息,所以原因一定在Nginx的设置上。
经过我查阅资料和测试,发现有可能是worker_processes的参数设置不当引起的。
worker_processes默认情况下为1,一般情况下不用修改,但考虑到实际情况,可以修改这个数值,以提高性能,官方的建议是修改成CPU的内核数,这里引用一段翻译过的文章:
worker_processes指明了nginx要开启的进程数,据官方说法,一般开一个就够了,多开几个,可以减少机器io带来的影响。据实践表明,nginx的这个参数在一般情况下开4个或8个就可以了,再往上开的话优化不太大。据另一种说法是,nginx开启太多的进程,会影响主进程调度,所以占用的cpu会增高。
经过我测试发现,这个数字是不能乱设置的,如果网站没有出现io系能问题,最好不要修改,采用默认的1即可,如果非要设置,必须要和CPU的内核数匹配,否则要么就假死(主要是Windows),要么就出现502的错误(主要是Linux)。
我的电脑是双核的,按理说应该是2,但是实际上应该是4,因为是双线程的。测试结果如下:
1、worker_processes为1,线程打开2个,有一个是主线程,运行很稳定。
2、worker_processes为2,线程打开3个,有一个是主线程,1分钟左右挂掉(假死,无法打开网页,浏览器一直处于载入中)。
3、worker_processes为4,线程打开5个,有一个是主线程,运行很稳定。
4、worker_processes为8,线程打开9个,有一个是主线程,和2一样,1分钟左右挂掉。
关于Nginx的worker_processes参数设置
最新推荐文章于 2024-04-23 16:24:40 发布