标准情况下,软件默认的参数都是对安装软件的硬件标准来设置的,⽬前我们服务器的硬件资源远远⼤于要求的标准,所以为了让服务器性能更加出众,充分利⽤服务器的硬件资源,我们⼀般需要优化APP的并发数来提升服务器的性能。
1.进程优化
worker_processes 4; # ⼯作进程数量 按CPU的总核⼼调整,一般有几核就几个进程
worker_cpu_affinity 0001 0010 0100 1000; # CPU的亲和⼒,也就是分配cpu。0001 0010 0100 1000 分别代表第零、一、二、三号核心
events {
worker_connections 1024; # 每个进程最大并发数
}
http {
...
}
查看服务器有几个核
cat /proc/cpuinfo |grep “flags” |wc -l
查看Nginx当前链接数
netstat -antpl |grep nginx|grep ESTABLISHED|wc -l
2.长连接
设置长连接可以减少三次握⼿和四次断开的次数
http {
...
# keepalive_timeout 0; 0代表关闭
# keepalive_timeout 5; 长连接保持时间5秒
# keepalive_requests 8192; 每个⻓连接接受最⼤请求数8192
3.数据压缩
使用数据压缩可以大大减少传输文件的大小,从而达到减少使用带宽,提高传输效率的的目的。
http {
...
gzip on; #(启⽤ gzip 压缩功能)
gzip_proxiedany; #(nginx 做前端代理时启⽤该选项,表示⽆论后端服务器的headers头返回什么信息,都⽆条件启⽤压缩)
gzip_min_length 1024; #(最⼩压缩的⻚⾯,如果⻚⾯过于⼩,可能会越压越⼤,这⾥规定⼤于1K的⻚⾯才启⽤压缩)
gzip_buffers 4 8k; #(设置系统获取⼏个单位的缓存⽤于存储gzip的压缩结果数据流 按照原始数据⼤⼩以8K为单位申请4倍内存空间)
gzip_comp_level3; # (压缩级别,1压缩⽐最⼩处理速度最快,9压缩⽐最⼤但处理最慢,同时也最消耗CPU,⼀般设置为3就可以了)
gzip_types text/plain text/cssapplication/x-javascriptapplication/javascriptapplication/xml; #(什么类型的⻚⾯或⽂档启⽤压缩)
}
4.客户端缓存
客户端缓存可以在一定程度上减小服务器压力
http {
server {
location ~* \.(png|gif)$ {
expires 1h; # 客户端缓存png和gif文件持续时间1h
}
}
}