Nginx优化目的
标准情况下,软件默认参数都是对安装软件的硬件标准来设置的,目前我们服务器的硬件资源远远大于要求的标准,所以为了让服务器性能更加出众,充分利用服务器硬件资源,一般需要优化app的并发数来提升服务器性能,提高用户体验,节省公司成本
注意:优化需要根据实际情况进行调整每个业务的处理能力不同,需要进行实际测试才能得到当前最优配置
优化方案
nginx是主进程+工作进程模型
worker_processes 1; 工作进程数量,按CPU的总核心调整
worker_cou_affinity 0001 0010 0100 1000; CPU亲和力
worker_connections 1024; 一个工作进程的并发数
ps -eo psr,pid,args | grep nginx
长连接
http协议属于TCP协议
优化目标:减少三次握手和四次断开的次数
keepalive_timout 5; 长连接时间
keepalive_requests 8192; 每个长连接接受最大请求数
数据压缩
gzip on; 开启压缩功能
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; 什么类型的页面或文档启用压缩
客户端缓存
语法:expires [time|epoch|max|off]
默认值:expires off
作用域:http,server,location
满足js/css的数据在客户端缓存1小时
location ~.*\.(js|css)?$ { expires 1h; }