Nginx大并发优化实战
(编辑:jimmy 日期: 2024/11/28 浏览:3 次 )
一、调优的必要性
- 业务运行:线上业务正常运行,承载了公司业务。
- 监控业务:通过监控业务对线上业务进行监控,及时发现问题。
- 优化业务:通过监控分析,发现业务问题或者瓶颈,及时对业务或者软件就行调整、优化。
- 测试优化:优化完成后,需要对现有的优化进行测试,保证业务在当前优化模式中稳定、高效,能够解决当前问题。
这就是业务运行的一个流程,也是我们保证业务稳定、高效、高可用的运维之道。
二、调优的维度和见解分歧
三、Nginx调优
- nginx并发数
- nginx进程优化
- nginx压缩
- nginx本地缓存
1、nginx并发数设置
worker_processes 1;
这是用来配置nginx启动几个工作进程的,默认为1。而nginx还支持一个名为worker_cpu_affinity的配置项,也就是说,nginx可以为每个工作进程绑定CPU。我做了如下配置:
events { worker_connections 1024; }
2、nginx将进程绑定在固定核
worker_cpu_affinity 0010 0100 1000;
worker_processes 3; worker_cpu_affinity 0010 0100 1000; #这里0010 0100 1000是掩码,分别代表第2、3、4颗cpu核心。
重启nginx后,3个工作进程就可以各自用各自的CPU了。
ps -eo psr,pid,arg 查看
nginx的并发=worker_processes*worker_connections
3、nginx 压缩功能
压缩功能对于WEB服务器来说太重要了,主要体现在以下两个方向:
开启压缩
代码如下:
gzip on; (启用 gzip 压缩功能) gzip_http_version 1.1; 它的默认值是HTTP/1.1,就是说对HTTP/1.1协议的请求才会进行gzip压缩 gzip_disable "MSIE [1-6].";设置是禁用IE1-6版本的gzip压缩 gzip_proxied any; (nginx 做前端代理时启用该选项,表示无论后端服务器的headers头返回什么信息,都无条件启用压缩) gzip_min_length 1024; (最小压缩的页面,如果页面过于小,可能会越压越大,这里规定大于1K的页面才启用压缩) gzip_buffers 4 8k; (设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流 按照原始数据大小以8K为单位申请4倍内存空间) gzip_comp_level 3; (压缩级别,1压缩比最小处理速度最快,9压缩比最大但处理最慢,同时也最消耗CPU,一般设置为3就可以了) gzip_types text/plain text/css application/x-javascript application/javascript application/xml; (什么类型的页面或文档启用压缩)
开启压缩验证
4、nginx 本地缓存功能
"htmlcode">
使用本指令可以控制HTTP应答中的“Expires”和“Cache-Control”的头标,(起到控制页面缓存的作用)。 可以在time值中使用正数或负数。“Expires”头标的值将通过当前系统时间加上您设定的 time 值来获得。 epoch 指定“Expires”的值为 1 January, 1970, 00:00:01 GMT。 max 指定“Expires”的值为 31 December 2037 23:59:59 GMT,“Cache-Control”的值为10年。 -1 指定“Expires”的值为 服务器当前时间 -1s,即永远过期
缓存案例
下一篇:windows 用VMware创建linux虚拟机安装CentOS7.2操作系统