博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nginx 常用配置
阅读量:6957 次
发布时间:2019-06-27

本文共 1427 字,大约阅读时间需要 4 分钟。

1, listen per_worker

listen     80;listen     8010 per_worker;

per_worker是说明当前的nginx除了建立在80号的端口上的侦听之外,还需要建立8010开始的4个(由worker_processess配置决定的)端口。

然后,启动nginx,再在命令行上测试

# sudo sbin/nginx -c your_demo_directory/nginx.conffor port in 80 {
8010..8013}; do curl "http://127.0.0.1:$port/test"; done

显示类似如下,即检测成功。

 

2, accept_mutex

假设你养了一百只小鸡,现在你有一粒粮食,那么有两种喂食方法:

  • 你把这粒粮食直接扔到小鸡中间,一百只小鸡一起上来抢,最终只有一只小鸡能得手,其它九十九只小鸡只能铩羽而归。这就相当于关闭了accept_mutex。
  • 你主动抓一只小鸡过来,把这粒粮食塞到它嘴里,其它九十九只小鸡对此浑然不知,该睡觉睡觉。这就相当于激活了accept_mutex。

可以看到此场景下,激活accept_mutex相对更好一些,让我们修改一下问题的场景,我不再只有一粒粮食,而是一盆粮食,怎么办?

此时如果仍然采用主动抓小鸡过来塞粮食的做法就太低效了,一盆粮食不知何年何月才能喂完,大家可以设想一下几十只小鸡排队等着喂食时那种翘首以盼的情景。此时更好的方法是把这盆粮食直接撒到小鸡中间,让它们自己去抢,虽然这可能会造成一定程度的混乱,但是整体的效率无疑大大增强了。

实际上我们可以通过工具来测量 accept_mutex 对性能的影响,比如说 :

开启 accept_mutex 时:

shell> ./ngx-req-distr -m `cat /path/to/nginx.pid`Tracing 12970 12971 12972 12974 (/path/to/nginx)...Hit Ctrl-C to end.^Cworker 12970:    0 reqsworker 12971:    37 reqsworker 12972:    127 reqsworker 12974:    3 reqs

关闭 accept_mutex 时:

shell> ./ngx-req-distr -m `cat /path/to/nginx.pid`Tracing 20433 20434 20435 20436 (/path/to/nginx)...Hit Ctrl-C to end.^Cworker 20433:    75 reqsworker 20434:    32 reqsworker 20435:    29 reqsworker 20436:    44 reqs

明显可以看出,同开启 accept_mutex 相比,关闭 accept_mutex 的时候,请求在多个 worker 间的分配更均衡了

 

ref : 

https://github.com/aimingoo/ngx_cc/wiki/%E7%AE%80%E4%BB%8B

https://huoding.com/2013/08/24/281

 

转载于:https://www.cnblogs.com/pinganzi/p/9995659.html

你可能感兴趣的文章
思科路由器×××的配置实例
查看>>
搭建Web服务器之Step2:VMware下虚拟机NAT联网设置
查看>>
Android 多线AsyncTask详解
查看>>
Puppet基础篇6-Puppet更新方式的选型
查看>>
我的友情链接
查看>>
使用AdminLTE
查看>>
Armstrong数
查看>>
Stimulsoft Reports.Net基础教程(三):创建主从报表①
查看>>
logstash file输入,无输出原因与解决办法
查看>>
C# StringHelper
查看>>
[体感游戏]关于体感游戏的一些思考(五) --- 导航
查看>>
2、Rabbitmq消费者确认机制
查看>>
c++ 植物类 继承多态 菱形继承
查看>>
21、Samba配置详解
查看>>
Eclipse反编译插件 Enhanced Class Decompiler
查看>>
第五元素 感
查看>>
Java性能调优
查看>>
JAVA桌面图表控件Chart FX for Java Desktop
查看>>
RH413日志服务器篇
查看>>
Android模拟器Genymotion
查看>>